给定大小为N的数组arr [] ,任务是查找数组中的谷点数。
Valley Point: Any elements of the array is known as a valley point if it is smaller than both its adjacent elements, i.e. .
例子:
Input: arr[] = {3, 2, 5}
Output: 1
Explanation:
There is only one valley point. That is arr[1].
Input: arr[] = {5, 4, 8, 3, 6}
Output: 2
Explanation:
There are two valley points. That is arr[1] and arr[3].
方法:这个想法是将数组从1迭代到对于每个元素,检查该元素是否为谷点(如果是),然后将谷点的计数增加1。
if (arr[i-1] > arr[i] < arr[i])
count += 1;
下面是上述方法的实现:
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
输出:
1