Start learning free

LESSON 144 OF 409 · LOOPS & GLOBAL VARIABLES

Maximum Value in Array in C++ (Time Complexity: O(n))

Practice Read the full explanation

Given an array of integers, return the maximum value from the array.

Example:

Input: nums = [2, 7, 11, 8, 11, 8, 3, 11]
Output: 11
Explanation: The maximum value is 11

Note:

Do not use builtin functions such as max(), it would defy the purpose of the challenge. Write the whole code yourself.

STEP 1 OF 4
    Ctrl + Enter to check

    C++ · LOOPS & GLOBAL VARIABLES

    Max In Array in C++, explained

    Understanding the Problem

    The core challenge of this problem is to find the maximum value in an array without using built-in functions. This is a fundamental problem in computer science and is often used to teach basic algorithmic thinking and iteration techniques.

    Common applications include finding the highest score in a game, the maximum temperature in a dataset, or the largest financial transaction in a list.

    Potential pitfalls include not handling empty arrays or arrays with all negative numbers correctly.

    Approach

    To solve this problem, we can iterate through the array and keep track of the maximum value encountered so far. This approach ensures that we only pass through the array once, making it efficient.

    Let's break down the approach:

    1. Initialize a variable to store the maximum value. Set it to the smallest possible integer value initially.
    2. Iterate through each element in the array.
    3. For each element, compare it with the current maximum value. If it is greater, update the maximum value.
    4. After completing the iteration, the variable holding the maximum value will contain the largest number in the array.

    Algorithm

    Here is a step-by-step breakdown of the algorithm:

    1. Initialize max_value to INT_MIN (the smallest possible integer).
    2. Loop through each element num in the array nums.
    3. If num is greater than max_value, update max_value to num.
    4. After the loop, return max_value.

    Code Implementation

    #include <iostream>
    #include <vector>
    #include <climits> // For INT_MIN
    
    // Function to find the maximum value in an array
    int findMaxValue(const std::vector<int>& nums) {
        // Initialize max_value to the smallest possible integer
        int max_value = INT_MIN;
    
        // Iterate through each element in the array
        for (int num : nums) {
            // Update max_value if the current element is greater
            if (num > max_value) {
                max_value = num;
            }
        }
    
        // Return the maximum value found
        return max_value;
    }
    
    int main() {
        // Example usage
        std::vector<int> nums = {2, 7, 11, 8, 11, 8, 3, 11};
        std::cout << "The maximum value is: " << findMaxValue(nums) << std::endl;
        return 0;
    }
    

    Complexity Analysis

    The time complexity of this approach is O(n), where n is the number of elements in the array. This is because we only make a single pass through the array.

    The space complexity is O(1) since we are using a constant amount of extra space regardless of the input size.

    Edge Cases

    Consider the following edge cases:

    • An empty array: The function should handle this gracefully, possibly by returning a sentinel value or throwing an exception.
    • An array with all negative numbers: The function should still correctly identify the maximum (least negative) number.
    • An array with all identical elements: The function should return that element.

    Testing

    To test the solution comprehensively, consider the following test cases:

    • Simple case: [2, 7, 11, 8, 11, 8, 3, 11]
    • Empty array: []
    • All negative numbers: [-5, -1, -3, -4]
    • All identical elements: [7, 7, 7, 7]
    • Single element: [42]

    Thinking and Problem-Solving Tips

    When approaching such problems, consider the following tips:

    • Break down the problem into smaller, manageable parts.
    • Think about edge cases and how your solution will handle them.
    • Write pseudocode before jumping into the actual implementation.
    • Test your solution with a variety of inputs to ensure its correctness.

    Conclusion

    Finding the maximum value in an array is a fundamental problem that helps build a strong foundation in algorithmic thinking. By understanding and implementing this solution, you can tackle more complex problems with confidence.

    Remember to practice regularly and explore different approaches to enhance your problem-solving skills.

    Additional Resources

    For further reading and practice, consider the following resources:

    Keep going with C++About 340 step-by-step lessons, from your first line of code to coding interviews. Free to start.
    Start learning free