Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

주어진 배열의 극값을 계산하는 C++ 코드

<시간/>

n개의 요소가 있는 배열 A가 있다고 가정합니다. 이 배열 A[i]의 일부 요소는 두 인접 요소보다 엄격하게 작은 경우에만 국소 최소값이라고 합니다. 또한 이웃보다 엄격하게 크면 로컬 최대값이 됩니다. A[0] 및 A[n-1]의 경우 이웃이 하나뿐이므로 최대 또는 최소가 아닙니다. 주어진 배열에서 극값의 수를 찾아야 합니다.

따라서 입력이 A =[1, 5, 2, 5]와 같으면 출력은 2가 됩니다. A[1]의 5는 극대값이고 A[2]의 2는 극소값이기 때문입니다.

단계

이 문제를 해결하기 위해 다음 단계를 따릅니다. −

sum :=0n :=A의 크기 초기화 i :=1, i  A[i + 1] 및 A[i]> A[i - 1]), 다음:(1만큼 합계 증가) 합계 반환 

예시

이해를 돕기 위해 다음 구현을 살펴보겠습니다. −

#include 네임스페이스 std;int solve(vector A){ int sum =0; 정수 n =A.크기(); for (int i =1; i  A[i + 1] &&A[i]> A[i - 1])) 합계++; 반환 합계;}int main(){ vector A ={ 1, 5, 2, 5 }; cout <<해결(A) < 

입력

{ 1, 5, 2, 5 }

출력

2