Advertisement
rajeshinternshala

Untitled

Oct 14th, 2023
30
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 0.86 KB | None | 0 0
  1.     static long getChannelRating(List<Integer> views) {
  2.         long ans = 0;
  3.         long modd = 1000000007;
  4.         Map<Long, Long> m = new HashMap<>();
  5.         m.put(0L, 1L);
  6.         long p = 0;
  7.         List<Long> pre = new ArrayList<>(views.size());
  8.  
  9.         for (int i = 0; i < views.size(); i++) {
  10.             p ^= views.get(i);
  11.  
  12.             if (i >= 2) {
  13.                 ans += m.getOrDefault(p, 0L);
  14.                 ans %= modd;
  15.  
  16.                 if (views.get(i) == 0) {
  17.                     ans--;
  18.                 }
  19.  
  20.                 if (views.get(i).equals(views.get(i - 1))) {
  21.                     ans--;
  22.                 }
  23.  
  24.                 if (ans < 0) {
  25.                     ans += modd;
  26.                 }
  27.             }
  28.  
  29.             m.put(p, m.getOrDefault(p, 0L) + 1);
  30.             pre.add(p);
  31.         }
  32.  
  33.         return (int)ans;
  34.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement