이 문서에서는 주어진 숫자 X보다 큰 주어진 시퀀스의 세그먼트 또는 하위 배열 수를 찾아야 합니다.
겹치는 세그먼트는 한 번만 계산할 수 있으며, 두 개의 인접한 요소 또는 세그먼트는 별도로 계산하면 안 됩니다. 그래서 여기에 주어진 문제의 기본 예가 있습니다. −
Input : arr[ ] = { 9, 6, 7, 11, 5, 7, 8, 10, 3}, X = 7 Output : 3 Explanation : { 9 }, { 11 } and { 8, 10 } are the segments greater than 7 Input : arr[ ] = { 9, 6, 12, 2, 11, 14, 8, 14 }, X = 8 Output : 4 Explanation : { 9 }, { 12 }, { 11, 14 } and { 14 } are the segments greater than 8
이 문제에서 우리는 변수 state를 0으로 초기화하고 주어진 배열 처리를 시작합니다. X의 요소가 발견되면 상태를 1로 변경하고 숫자가 다음보다 작거나 같을 때 요소 처리를 계속합니다.
#include <bits/stdc++.h> using namespace std; int main (){ int a[] = { 9, 6, 12, 2, 11, 14, 8, 14 }; int n = sizeof (a) / sizeof (a[0]); int X = 8; int state = 0; int count = 0; // traverse the array for (int i = 0; i < n; i++){ // checking whether element is greater than X if (a[i] > X){ state = 1; } else{ // if flag is true if (state) count += 1; state = 0; } } // checking for the last segment if (state) count += 1; cout << "Number of segments where all elements are greater than X: " << count; return 0; }
Number of segments where all elements are greater than X: 4
위 프로그램에서는 상태를 스위치로 사용하여 X보다 큰 숫자가 발견되면 1로 설정하고, 더 큰 숫자가 발견되면 1로 설정하고 있습니다. 보다 작거나 같은 숫자 찾기 마지막으로 count에 저장된 결과를 인쇄합니다.
본 논문에서는 세그먼트를 찾을 때마다 상태를 1과 0으로 설정하는 방법을 적용하여 모든 요소가 X보다 큰 세그먼트의 수를 찾는 문제를 해결했습니다. C, Java, Python 등과 같은 다른 프로그래밍 언어로 이 프로그램을 작성할 수 있습니다.
위 내용은 C++로 작성되었으며 모든 요소가 X보다 큰 세그먼트 수를 찾습니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!