Advertisement
veeq7

Untitled

Apr 20th, 2021 (edited)
709
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.81 KB | None | 0 0
  1. // how does this have 500 views?
  2.  
  3. #include <iostream>
  4. #include <vector>
  5.  
  6. void swap(int* i, int* j) {
  7.     auto temp = *i;
  8.     *i = *j;
  9.     *j = temp;
  10. }
  11.  
  12. std::vector<int> sort(std::vector<int> vec) {
  13.     for (int i = 0; i < vec.size(); i++) {
  14.         bool swapped = false;
  15.         for (int j = 0; j < vec.size() - 1; j++) {
  16.             if (vec[j] > vec[j + 1]) {
  17.                 swap(&vec[j], &vec[j + 1]);
  18.                 swapped = true;
  19.             }
  20.         }
  21.         if (!swapped) {
  22.             break;
  23.         }
  24.     }
  25.     return vec;
  26. }
  27.  
  28. int find_dominant(std::vector<int> vec) {
  29.     std::cout << "Dominant of ";
  30.     for (int i : vec) {
  31.         std::cout << i << " ";
  32.     }
  33.  
  34.     vec = sort(vec);
  35.     int current_repeats = 1;
  36.     int current_value = vec[0];
  37.     int max_repeats = 1;
  38.     int max_value = vec[0];
  39.     for (int i = 1; i < vec.size(); i++) {
  40.         if (current_value == vec[i]) {
  41.             current_repeats++;
  42.         } else {
  43.             if (current_repeats > max_repeats) {
  44.                 max_repeats = current_repeats;
  45.                 max_value = current_value;
  46.             }
  47.             current_repeats = 1;
  48.             current_value = vec[i];
  49.         }
  50.     }
  51.     if (current_repeats > max_repeats) {
  52.         max_value = current_value;
  53.     }
  54.  
  55.     std::cout << std::endl << "\tequals to " << max_value << std::endl << std::endl;
  56.     return max_value;
  57. }
  58.  
  59. int main() {
  60.     find_dominant({4, 4, 3, 2, 1, 5, 6});
  61.     find_dominant({1, 1, 2, 2, 2, 3, 4});
  62.     find_dominant({1, 1, 1, 3, 3, 4, 5});
  63.     find_dominant({6, 5, 6, 6, 3, 6});
  64.     find_dominant({6, 5, 5, 4, 4, 4, 3, 3, 3, 3, 2, 2, 1, 1, 1, 1, 1, 1});
  65.     find_dominant({5, 4, 4});
  66.     find_dominant({3, 3, 4, 4, 4});
  67.  
  68.     return 0;
  69. }
  70.  
  71. /*
  72.  
  73.     OUTPUT
  74.  
  75. Dominant of 4 4 3 2 1 5 6
  76.         equals to 4
  77.  
  78. Dominant of 1 1 2 2 2 3 4
  79.         equals to 2
  80.  
  81. Dominant of 1 1 1 3 3 4 5
  82.         equals to 1
  83.  
  84. Dominant of 6 5 6 6 3 6
  85.         equals to 6
  86.  
  87. Dominant of 6 5 5 4 4 4 3 3 3 3 2 2 1 1 1 1 1 1
  88.         equals to 1
  89.  
  90. Dominant of 5 4 4
  91.         equals to 4
  92.  
  93. Dominant of 3 3 4 4 4
  94.         equals to 4
  95.  
  96. */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement