前缀和
maihc1
这个作者很懒,什么都没留下…
展开
-
LeetCode每日一题-2021/06/03-连续数组
连续数组–java–前缀和 思路: 这道题的暴力解法应该是很容易想到的,使用两层循环,很容易求解。但超时是肯定的。 比较难想的是第二种解法,使用前缀和+哈希表。这个想法最关键的地方在于想到前缀和 主要用于求连续子数组和,能想到这一点就很好做了,只需把0换成-1,然后考虑前缀和值 相等的情况即可。 class Solution { // public int findMaxLength(int[] nums) { // int max = 0; // for( int.原创 2021-06-04 12:58:37 · 67 阅读 · 0 评论 -
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 · 62 阅读 · 0 评论