523.continuous-subarray-sum.go 344 B

123456789101112131415161718192021
  1. func checkSubarraySum(nums []int, k int) bool {
  2. n := len(nums)
  3. if n < 2 {
  4. return false
  5. }
  6. dp := make([]int, n)
  7. copy(dp, nums)
  8. for l := n - 1; 1 <= l; l-- {
  9. for i := 0; i < l; i++ {
  10. dp[i] += nums[i+n-l]
  11. if k == 0 {
  12. if dp[i] == k {
  13. return true
  14. }
  15. } else if dp[i]%k == 0 {
  16. return true
  17. }
  18. }
  19. }
  20. return false
  21. }