【LeetCode523】. Continuous Subarray Sum

    xiaoxiao2021-03-25  158

    /************************* 523. Continuous Subarray Sum Given a list of non-negative numbers and a target integer k, write a function to check if the array has a continuous subarray of size at least 2 that sums up to the multiple of k, that is, sums up to n*k where n is also an integer. Example 1: Input: [23, 2, 4, 6, 7],  k=6 Output: True Explanation: Because [2, 4] is a continuous subarray of size 2 and sums up to 6. Example 2: Input: [23, 2, 6, 4, 7],  k=6 Output: True Explanation: Because [23, 2, 6, 4, 7] is an continuous subarray of size 5 and sums up to 42. *********************/ /********************* 思想:   1.长度分别为2.3.4...size   2.分别求  如果满足sum%k==0  return true,否则返回false   3.注意处理k==0情况 **************************/ bool continuousSubarraySum(vector<int> nums,int k) { int size = nums.size(); for (int ii = 2; ii <= size; ++ii) { int sum = 0; for (int jj = 0; jj < ii; ++jj) { sum = sum + nums[jj]; } if (k == 0) { if (sum == 0) return true; } else { if (sum%k == 0) return true; } for (int kk = ii; kk < size; ++kk) { sum = sum - nums[kk - ii] + nums[kk]; if (k == 0) { if (sum == 0) return true; } else { if (sum%k == 0) return true; } } } return false; }
    转载请注明原文地址: https://ju.6miu.com/read-6768.html

    最新回复(0)