C++ Calculating the Mode of a Sorted Array

#include <iostream>
#include <vector>

int findMode(const std::vector<int>& sortedArray) {
    if (sortedArray.empty()) {
        return -1;  // Invalid input: empty array
    }

    int currentNumber = sortedArray[0];
    int currentCount = 1;
    int maxNumber = currentNumber;
    int maxCount = currentCount;

    for (int i = 1; i < sortedArray.size(); ++i) {
        if (sortedArray[i] == currentNumber) {
            ++currentCount;
        } else {
            currentNumber = sortedArray[i];
            currentCount = 1;
        }

        if (currentCount > maxCount) {
            maxNumber = currentNumber;
            maxCount = currentCount;
        }
    }

    return maxNumber;
}

int main() {
    std::vector<int> sortedArray = {1, 2, 2, 3, 4, 4, 4, 5, 5, 5, 5};
    int mode = findMode(sortedArray);

    if (mode != -1) {
        std::cout << "Mode: " << mode << std::endl;
    } else {
        std::cout << "Invalid input: empty array" << std::endl;
    }

    return 0;
}