LeetCode523 連續子陣列和

2021-10-05 22:06:18 字數 938 閱讀 8454

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。示...