Leetcode 930. 동일한 이원수 그룹 문제풀이

제목 링크:https://leetcode-cn.com/problems/binary-subarrays-with-sum/창문을 즐겁게 미끄러지면 특판은 있어도 되고 없어도 되지만 신기한 사례는 좀 빠르다.두 바늘의 경계를 맨 앞에 두는 것을 기억해라!!!
코드는 다음과 같습니다.
class Solution {
public:
    int numSubarraysWithSum(vector<int>& A, int S) {
        
        //   
        int sum =  0;
        for(int i = 0; i < A.size(); i++) {
            sum += A[i];
        }
        if(S > sum || S < 0) {
            return 0;
        }

        //    
        int i = 0, j = 0, index = 0;
        int res = 0;
        sum = 0;

        //     
        while(j < A.size()) {
            i = index;
            sum += A[j];
            while(sum > S) {
                if(i >= j) {
                    break;
                }
                sum -= A[i];
                i++;
            }
            index = i;
            int pos = sum;	//             ,   sum,  sum          ,              。
            while(pos == S) {
                res++;
                if(i >= j) {
                    break;
                }
                pos -= A[i];
                i++;
            }
            printf("index = %d, i = %d, j = %d, res = %d
"
, index, i, j, res); j++; } return res; } };

좋은 웹페이지 즐겨찾기