1、未考慮的情況:
k=0的情況,一般涉及到%和/都要優先考慮到除數為0的情況。
k=0且陣列中有連續兩個0的情況,返回true
雙層迴圈,複雜度(o(n^2))
**:
package com.leetcode.dp;
public
class
leet523
; system.out.
println
(checksubarraysum
(nums,0)
);}public
static
boolean
checksubarraysum
(int
nums,
int k)
}return flag;
}}
2、題解中優化做法
主要思想:
a、兩個不同的字首和的餘數相等,意味著這兩個字首和之差就是k的倍數
b、sum=sum%k對求解字首和的餘數沒有影響,他只是讓sum和餘數之間的差去掉,但為什麼這樣子
做呢,有兩個好處
a.加入①,碰到[1,0,1] k=2這種nums[i]都小於k的,sumk的,處理框架依然在a的範圍內
b.碰到k0時,處理框架也依然在a的範圍
使用hashmap記錄,到第i個資料,前i個資料和%k的值
Leetcode 523 連續的子陣列和
給定乙個包含非負數的陣列和乙個目標整數 k,編寫乙個函式來判斷該陣列是否含有連續的子陣列,其大小至少為 2,總和為 k 的倍數,即總和為 n k,其中 n 也是乙個整數。示例 1 輸入 23,2,4,6,7 k 6 輸出 true 解釋 2,4 是乙個大小為 2 的子陣列,並且和為 6。示例 2 輸...
LeetCode 523 連續的子陣列和
給定乙個包含非負數的陣列和乙個目標整數 k,編寫乙個函式來判斷該陣列是否含有連續的子陣列,其大小至少為 2,總和為 k 的倍數,即總和為 n k,其中 n 也是乙個整數。示例 1 輸入 23,2,4,6,7 k 6 輸出 true 解釋 2,4 是乙個大小為 2 的子陣列,並且和為 6。示例 2 輸...
LeetCode523,連續的子陣列和
題目描述 給定乙個包含非負數的陣列和乙個目標整數 k,編寫乙個函式來判斷該陣列是否含有連續的子陣列,其大小至少為 2,總和為 k 的倍數,即總和為 n k,其中 n 也是乙個整數。示例 1 輸入 23,2,4,6,7 k 6 輸出 true 解釋 2,4 是乙個大小為 2 的子陣列,並且和為 6。示...