How to find the maximum difference between two successive elements in an int vector with C++

1 Answer

0 votes
#include <algorithm>
#include <iostream>
#include <vector>

int maximumGap(std::vector<int>& vec) {
        int gap = 0;
        
        if (vec.size() == 0) {
            return 0;
        }

        // Sort the vector in ascending order
        std::sort(vec.begin(), vec.end());
        
        int size = vec.size();
        
        for (int i = 0; i < size - 1; i++) {
            // Calculate the difference between consecutive elements
            int diff = vec[i + 1] - vec[i];
            
            if (diff > gap) {
                gap = diff;
            }
        }
        
        // Return the largest gap
        return gap;
    }

int main() {
    std::vector<int> vec {1, 3, 5, 9, 11, 13}; // 5, 9 -> 4
    
    std::cout << maximumGap(vec);
}

  
  
/*
run:

4
   
*/

 



answered Jan 7, 2025 by avibootz
...