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

C++를 사용하여 모든 요소를 ​​0으로 만들기 위한 배열의 최소 작업 수입니다.

<시간/>

문제 설명

크기가 N인 배열이 주어지고 각 요소는 1 또는 0입니다. 작업은 모든 요소를 ​​0으로 변환하기 위해 수행할 작업의 최소 수를 계산하는 것입니다. 아래 작업을 수행할 수 있습니다. -

요소가 1이면 해당 값을 0으로 변경할 수 있습니다. 그런 다음 -

  • 다음 연속 요소가 1이면 자동으로 0으로 변환됩니다.

  • 다음 연속 요소가 이미 0이면 아무 일도 일어나지 않습니다.

arr[] ={1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0, 1}이면 모든 요소를 ​​0으로 만들기 위해 4작업이 필요합니다. 

알고리즘

1. 현재 요소가 1이면 모든 연속 1이 자동으로 0.2로 변환되므로 개수를 늘리고 다음 0을 검색합니다. 최종 개수 반환

예시

#include #define SIZE(arr) (sizeof(arr) / sizeof(arr[0])) 네임스페이스 사용 std;int performMinOperation(int *arr, int n){ int i, cnt =0; for (i =0; i