Diferente pentru problema-majoritatii-votului intre reviziile #8 si #9

Nu exista diferente intre titluri.

Diferente intre continut:

int hashMajority(int n, int[] a) {
    HashMap<Integer, Integer> b = new HashMap<Integer, Integer>();
    for (int i = 0; i < n; i++) {
         if (b.get(a[i]) ==  null) {
         if (b.get(a[i])== null) {
             b.put(a[i], 1);
         } else {
             int num = b.get(a[i]);
    int i = 0;
    while (i < n) {
          int j = i;
          while (j < n && a[j + 1] == a[i]) j++;
          while (j < n && a[j + 1]==a[i]) j++;
          if (j – i + 1 > n / 2) return a[i];
          i = j + 1;
    }
int selectMajority(int n, int[] a) {
   int x = select(n,  a,  0, n – 1, n / 2 - 1), nr = 0;
   for (int i = 0; i < n; i++) {
         if (a[i] == x) nr++;
         if (a[i]==x) nr++;
   }
   if (nr > n/2) return x;
   else return -1;
     }
     int nr = 0;
     for (int I = 0; I < n; i++) {
           if (a[i] == ret) nr++;
           if (a[i]==ret) nr++;
     }
     if (nr > n/2) return ret;
     else return -1;
int mooreMajority(int n, int[]  a) {
    int cand = -1, k = 0;
    for (int i = 0; i < n; i++) {
          if (k == 0) {
          if (k==0) {
             cand = a[i];
             k = 1;
          } else  if (a[i] == cand) {
          } else  if (a[i]==cand) {
              k++;//nu am putut împerechea pe votantul i şi astfel trebuie să mărim numărul de votanţi necuplaţi
          } else k--;//cuplăm votantul i cu orice votant ce îl susţine pe cand şi micşorăm astfel numărul de votanţi necuplaţi
    }
    //faza de verificare
    int nr = 0;
    for (int i = 0; i < n; i++) {
          if (a[i] == cand) nr++;
          if (a[i]==cand) nr++;
    }
    if (nr > n / 2) return cand;
    else return – 1;
    for (int i = 0; i < n; i++) {
          boolean found = false;
          for (int j = 0; j < k - 1; j++) {
                if (cand[j] == a[i]) {
                if (cand[j]==a[i]) {
                   notMatched[j]++;
                   found = true;
                   break;
          }
          if (!found) {
              for (int j = 0; j < k - 1; j++) {
                    if (notMatched[j] == 0) {
                    if (notMatched[j]==0) {
                       cand[j] = a[i];
                       notMatched[j] = 1;
                       found = true;
   //faza de verificare
   for (int i = 0; i < n; i++) {
          for (int j = 0; j < k - 1; j++) {
                if (a[i] == cand[j] && notMatched[j] != 0)  num[j]++;
                if (a[i]==cand[j] && notMatched[j] != 0)  num[j]++;
          }
   }

Nu exista diferente intre securitate.

Topicul de forum nu a fost schimbat.