# Count of indices in an array that satisfy the given condition

Last Updated : 01 Mar, 2022

Given an array arr[] of N positive integers, the task is to find the count of indices i such that all the elements from arr[0] to arr[i – 1] are smaller than arr[i].

Examples:

Input: arr[] = {1, 2, 3, 4}
Output:
All indices satisfy the given condition.
Input: arr[] = {4, 3, 2, 1}
Output:
Only i = 0 is the valid index.

Approach: The idea is to traverse the array from left to right and keep track of the current maximum, whenever this maximum changes then the current index is a valid index so increment the resulting counter.
Below is the implementation of the above approach:

## C++

 `// C++ implementation of the approach` `#include ` `using` `namespace` `std;`   `// Function to return the count` `// of indices that satisfy` `// the given condition` `int` `countIndices(``int` `arr[], ``int` `n)` `{`   `    ``// To store the result` `    ``int` `cnt = 0;`   `    ``// To store the current maximum` `    ``// Initialized to 0 since there are only` `    ``// positive elements in the array` `    ``int` `max = 0;` `    ``for` `(``int` `i = 0; i < n; i++) {`   `        ``// i is a valid index` `        ``if` `(max < arr[i]) {`   `            ``// Update the maximum so far` `            ``max = arr[i];`   `            ``// Increment the counter` `            ``cnt++;` `        ``}` `    ``}`   `    ``return` `cnt;` `}`   `// Driver code` `int` `main()` `{` `    ``int` `arr[] = { 1, 2, 3, 4 };` `    ``int` `n = ``sizeof``(arr) / ``sizeof``(``int``);`   `    ``cout << countIndices(arr, n);`   `    ``return` `0;` `}`

## Java

 `// Java implementation of the approach` `class` `GFG ` `{`   `// Function to return the count` `// of indices that satisfy` `// the given condition` `static` `int` `countIndices(``int` `arr[], ``int` `n)` `{`   `    ``// To store the result` `    ``int` `cnt = ``0``;`   `    ``// To store the current maximum` `    ``// Initialized to 0 since there are only` `    ``// positive elements in the array` `    ``int` `max = ``0``;` `    ``for` `(``int` `i = ``0``; i < n; i++) ` `    ``{`   `        ``// i is a valid index` `        ``if` `(max < arr[i]) ` `        ``{`   `            ``// Update the maximum so far` `            ``max = arr[i];`   `            ``// Increment the counter` `            ``cnt++;` `        ``}` `    ``}` `    ``return` `cnt;` `}`   `// Driver code` `public` `static` `void` `main(String[] args) ` `{` `    ``int` `arr[] = { ``1``, ``2``, ``3``, ``4` `};` `    ``int` `n = arr.length;`   `    ``System.out.println(countIndices(arr, n));` `}` `}`   `// This code is contributed by Rajput-Ji`

## Python3

 `# Python implementation of the approach`   `# Function to return the count` `# of indices that satisfy` `# the given condition` `def` `countIndices(arr, n):`   `    ``# To store the result` `    ``cnt ``=` `0``;`   `    ``# To store the current maximum` `    ``# Initialized to 0 since there are only` `    ``# positive elements in the array` `    ``max` `=` `0``;` `    ``for` `i ``in` `range``(n):` `        ``# i is a valid index` `        ``if` `(``max` `< arr[i]): `   `            ``# Update the maximum so far` `            ``max` `=` `arr[i];`   `            ``# Increment the counter` `            ``cnt ``+``=` `1``;`   `    ``return` `cnt;`   `# Driver code` `if` `__name__ ``=``=` `'__main__'``:` `    ``arr ``=` `[ ``1``, ``2``, ``3``, ``4` `];` `    ``n ``=` `len``(arr);`   `    ``print``(countIndices(arr, n));`   `# This code is contributed by 29AjayKumar`

## C#

 `// C# implementation of the approach` `using` `System;` `    `  `class` `GFG ` `{`   `// Function to return the count` `// of indices that satisfy` `// the given condition` `static` `int` `countIndices(``int` `[]arr, ``int` `n)` `{`   `    ``// To store the result` `    ``int` `cnt = 0;`   `    ``// To store the current maximum` `    ``// Initialized to 0 since there are only` `    ``// positive elements in the array` `    ``int` `max = 0;` `    ``for` `(``int` `i = 0; i < n; i++) ` `    ``{`   `        ``// i is a valid index` `        ``if` `(max < arr[i]) ` `        ``{`   `            ``// Update the maximum so far` `            ``max = arr[i];`   `            ``// Increment the counter` `            ``cnt++;` `        ``}` `    ``}` `    ``return` `cnt;` `}`   `// Driver code` `public` `static` `void` `Main(String[] args) ` `{` `    ``int` `[]arr = { 1, 2, 3, 4 };` `    ``int` `n = arr.Length;`   `    ``Console.WriteLine(countIndices(arr, n));` `}` `}`   `// This code is contributed by PrinciRaj1992`

## Javascript

 ``

Output:

`4`

Time Complexity: O(n)

Auxiliary Space: O(1)

Article Tags :
Practice Tags :