# Count of array elements which is smaller than both its adjacent elements

• Last Updated : 20 Feb, 2022

Given an array arr[] of size N, the task is to find the number of valley points in the array.

Valley Point: Any elements of the array is known as a valley point if it is smaller than both its adjacent elements, i.e. .

Examples:

Input: arr[] = {3, 2, 5}
Output:
Explanation:
There is only one valley point. That is arr[1].

Input: arr[] = {5, 4, 8, 3, 6}
Output:
Explanation:
There are two valley points. That is arr[1] and arr[3].

Approach: The idea is to iterate over the array from 1 to and for each element check for that element is a valley point or not if yes, then increment the count of the valley point by 1.

```if (arr[i-1] > arr[i] < arr[i])
count += 1;```

Below is the implementation of the above approach:

## C++

 `// C++ program to count the number``// of valley points in the array``#include``using` `namespace` `std;` `// Function to count the valley points``// in the given character array``int` `countValleys(``int` `n, ``int` `arr[])``{``    ``int` `count = 0, temp = 0;``    ` `    ``// Loop to iterate over the``    ``// elements of the given array``    ``for``(``int` `i = 1; i < n - 1; i++)``    ``{``       ` `       ``// Condition to check if the given``       ``// element is a valley point``       ``if` `(arr[i - 1] > arr[i] &&``           ``arr[i] < arr[i + 1])``       ``{``           ``count++;``       ``}``    ``}``    ``return` `count;``}` `// Driver Code``int` `main()``{``    ``int` `arr[] = { 3, 2, 5 };``    ``int` `n = ``sizeof``(arr) / ``sizeof``(arr[0]);``    ` `    ``cout << countValleys(n, arr);``}` `// This code is contributed by Surendra_Gangwar`

## Java

 `// Java program to count the number``// of valley points in the array` `import` `java.io.*;` `class` `GFG {` `    ``// Function to count the valley points``    ``// in the given character array``    ``static` `int` `countValleys(``int` `n, ``int` `arr[])``    ``{``        ``int` `count = ``0``, temp = ``0``;` `        ``// Loop to iterate over the elements``        ``// of the given array``        ``for` `(``int` `i = ``1``; i < n - ``1``; i++) {` `            ``// Condition to check if the given``            ``// element is a valley point``            ``if` `(arr[i - ``1``] > arr[i]``                ``&& arr[i] < arr[i + ``1``]) {``                ``count++;``            ``}``        ``}``        ``return` `count;``    ``}` `    ``// Driver Code``    ``public` `static` `void` `main(String[] args)``    ``{``        ``int` `arr[] = { ``3``, ``2``, ``5` `};``        ``int` `n = arr.length;``        ``System.out.println(``            ``countValleys(n, arr));``    ``}``}`

## Python3

 `# Python3 program to count the number``# of valley points in the array` `# Function to count the valley points``# in the given character array``def` `countValleys(n, arr):` `    ``count ``=` `0``; temp ``=` `0``;` `    ``# Loop to iterate over the``    ``# elements of the given array``    ``for` `i ``in` `range``(``1``, n):` `        ``# Condition to check if the given``        ``# element is a valley point``        ``if` `(arr[i ``-` `1``] > arr[i] ``and``            ``arr[i] < arr[i ``+` `1``]):` `            ``count ``+``=` `1``;` `    ``return` `count;` `# Driver Code``arr ``=` `[ ``3``, ``2``, ``5` `];``n ``=` `len``(arr);``    ` `print``(countValleys(n, arr));` `# This code is contributed by Code_Mech`

## C#

 `// C# program to count the number``// of valley points in the array``using` `System;``class` `GFG{` `// Function to count the valley points``// in the given character array``static` `int` `countValleys(``int` `n, ``int` `[]arr)``{``    ``int` `count = 0;` `    ``// Loop to iterate over the elements``    ``// of the given array``    ``for` `(``int` `i = 1; i < n - 1; i++)``    ``{` `        ``// Condition to check if the given``        ``// element is a valley point``        ``if` `(arr[i - 1] > arr[i] &&``            ``arr[i] < arr[i + 1])``        ``{``            ``count++;``        ``}``    ``}``    ``return` `count;``}` `// Driver Code``public` `static` `void` `Main()``{``    ``int` `[]arr = { 3, 2, 5 };``    ``int` `n = arr.Length;``    ``Console.Write(countValleys(n, arr));``}``}` `// This code is contributed by Code_Mech`

## Javascript

 ``

Output:

`1`

Time Complexity: O(n)

Auxiliary Space: O(1)

My Personal Notes arrow_drop_up