Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // how does this have 500 views?
- #include <iostream>
- #include <vector>
- void swap(int* i, int* j) {
- auto temp = *i;
- *i = *j;
- *j = temp;
- }
- std::vector<int> sort(std::vector<int> vec) {
- for (int i = 0; i < vec.size(); i++) {
- bool swapped = false;
- for (int j = 0; j < vec.size() - 1; j++) {
- if (vec[j] > vec[j + 1]) {
- swap(&vec[j], &vec[j + 1]);
- swapped = true;
- }
- }
- if (!swapped) {
- break;
- }
- }
- return vec;
- }
- int find_dominant(std::vector<int> vec) {
- std::cout << "Dominant of ";
- for (int i : vec) {
- std::cout << i << " ";
- }
- vec = sort(vec);
- int current_repeats = 1;
- int current_value = vec[0];
- int max_repeats = 1;
- int max_value = vec[0];
- for (int i = 1; i < vec.size(); i++) {
- if (current_value == vec[i]) {
- current_repeats++;
- } else {
- if (current_repeats > max_repeats) {
- max_repeats = current_repeats;
- max_value = current_value;
- }
- current_repeats = 1;
- current_value = vec[i];
- }
- }
- if (current_repeats > max_repeats) {
- max_value = current_value;
- }
- std::cout << std::endl << "\tequals to " << max_value << std::endl << std::endl;
- return max_value;
- }
- int main() {
- find_dominant({4, 4, 3, 2, 1, 5, 6});
- find_dominant({1, 1, 2, 2, 2, 3, 4});
- find_dominant({1, 1, 1, 3, 3, 4, 5});
- find_dominant({6, 5, 6, 6, 3, 6});
- find_dominant({6, 5, 5, 4, 4, 4, 3, 3, 3, 3, 2, 2, 1, 1, 1, 1, 1, 1});
- find_dominant({5, 4, 4});
- find_dominant({3, 3, 4, 4, 4});
- return 0;
- }
- /*
- OUTPUT
- Dominant of 4 4 3 2 1 5 6
- equals to 4
- Dominant of 1 1 2 2 2 3 4
- equals to 2
- Dominant of 1 1 1 3 3 4 5
- equals to 1
- Dominant of 6 5 6 6 3 6
- equals to 6
- Dominant of 6 5 5 4 4 4 3 3 3 3 2 2 1 1 1 1 1 1
- equals to 1
- Dominant of 5 4 4
- equals to 4
- Dominant of 3 3 4 4 4
- equals to 4
- */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement