aboutsummaryrefslogtreecommitdiff
path: root/continuous_subarr_sum.py
diff options
context:
space:
mode:
Diffstat (limited to 'continuous_subarr_sum.py')
-rw-r--r--continuous_subarr_sum.py29
1 files changed, 29 insertions, 0 deletions
diff --git a/continuous_subarr_sum.py b/continuous_subarr_sum.py
new file mode 100644
index 0000000..06c6b13
--- /dev/null
+++ b/continuous_subarr_sum.py
@@ -0,0 +1,29 @@
+# 523. Continuous Subarray Sum
+
+
+class Solution(object):
+ def checkSubarraySum(self, nums, k):
+ """
+ :type nums: List[int]
+ :type k: int
+ :rtype: bool
+ """
+ dic, sum = {0: -1}, 0
+ for i, n in enumerate(nums):
+ if k != 0:
+ sum = (sum + n) % k
+ else:
+ sum += n
+ if sum not in dic:
+ dic[sum] = i
+ else:
+ if i - dic[sum] >= 2:
+ return True
+ return False
+
+
+if __name__ == "__main__":
+ obj = Solution()
+ print(obj.checkSubarraySum(nums=[23, 2, 4, 6, 7], k=6))
+ print(obj.checkSubarraySum(nums=[23, 2, 6, 4, 7], k=6))
+ print(obj.checkSubarraySum(nums=[23, 2, 6, 4, 7], k=13))