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

주어진 인덱스의 왼쪽에 있는 1과 0의 수에 답하기 위한 C++ 쿼리

<시간/>

주어진 배열에 대한 질문에 답하기 위한 문제에 대해 토론하십시오. 예를 들어 각 쿼리 인덱스에 대해 인덱스 왼쪽에서 1과 0의 수를 찾아야 합니다.

입력:arr[ ] ={ 0, 1, 1, 1, 0, 0, 0, 1, 0, 0}, 쿼리[ ] ={ 2, 4, 1, 0, 5 }출력:쿼리 1 :zeros =1,ones =1query 2:zeros =1,ones =3query 3:zeros =1,ones =0query 4:zeros =0,ones =0query 5:zeros =2,ones =3Input:arr[ ] ={ 0, 0, 1, 1, 1, 0, 1, 0, 0, 1 }, 쿼리[ ] ={ 3, 2, 6 }출력:쿼리 1:0 =2,원 =1쿼리 2:0 =2, 일 =0쿼리 3:0 =3, 일 =3

해결책을 찾기 위한 접근 방식

순진한 접근

이 문제에 대한 간단한 해결책은 배열을 통해 쿼리 인덱스로 이동하고 각 요소를 확인하는 것입니다. 0이면 0 카운터를 1만큼 증가시키고 그렇지 않으면 1 카운터를 1만큼 증가시킵니다.

예시

#include 네임스페이스 std;int main(){ int nums[] ={1, 0, 0, 1, 1, 0, 0, 1, 0, 0}; 정수 쿼리[] ={ 2, 4, 1, 0, 5 }; int qsize =sizeof(쿼리) / sizeof(쿼리[0]); 정수 0 =0, 1 =0; // 각 쿼리를 실행하기 위한 루프. for(int i =0;i