LeetCode每日一题-2020/06/02-连续的子数组和
连续的子数组和–java–前缀和+同余定理
思路:
这道题最容易想到的是时间复杂度为O(n ^ 2)的暴力法,但只可以通过92个用例,第93个用例无法通过,现在连打表都无法通过了。
数论学的好的朋友可能会想到求解这道题的关键,即利用同余定理。
同余定理简单解释:
(a - b) % c == 0 等价于 a % c == b % c
知道这个,这道题就变得非常简单了,(arr[j] - arr[i]) % k == 0 就可以转换为 arr[j] % k == arr[i] % k
利用哈希表就可以使用o
原创
2021-06-02 21:19:27 ·
67 阅读 ·
0 评论