2020-3-11
1013.将数组分成和相等的三个部分
✒解题思路:
- 当整个数组的和不是3的倍数时,无法等分成三组,返回
false
- 遍历数组求和,当部分和等于整个数组和的1/3时做标记,并将部分和置为零,当标记等于2说明能够分组
- 或者数组从前后分别求部分和,两个部分和等于整个数组和的1/3,说明能够分组
1 | class Solution { |
1025.除数问题
✒解题思路:
- 当
N
为偶数时,Alice
先手,只要减去1,Bob
就会得到一个奇数,只能减去奇数,Alice
得到偶数,最终当N=2
时结束,Alice
获胜 - 当N为奇数时,
Alice
先手,Bob
会得到一个偶数,只要减去1,Alice
就会得到奇数,最终当N=2
时,Bob
获胜
1 | class Solution { |
303.区域和检索-数组不可变
✒解题思路(官方):
- 解法一,直接暴力
- 解法二,使用数组记录从0开始到i的部分和,获取i到j的部分和就可以
sum[j+1]-sum[i]
1 | class NumArray { |
42.连续子数组的最大和(Kadane’s Algorithm)
✒解题思路:
- 从头开始遍历数组,用
sum
保存部分和,max
存储最大和,当sum
小于nums[i]
的值,舍弃sum
,令sum=nums[i]
,从当前开始遍历,比较max
与sum
的大小
1 | class Solution { |