Leetcode刷题记录

过滤器思想

1
2
3
4
5
6
        for i,v:=range nums{
        if (){
            nums[cnt]=v
            cnt++
        }
    }

核心思想

  1. 一个有序的数组
  2. 通过条件进行过滤后生成一个新的数组

前缀和思想

leetcode 1248 优美子数组

核心思想

  1. 通过%2将找k个奇数的子数组=>找和为k的子数组=>s[i]-s[j]=k=>s[j] = s[i] - k
  2. nums: [1,1,2,1,1]
  3. nums%2: [1,1,0,1,1]
  4. sum: [0,1,2,2,3,4]
  5. count:[1,1,2,1,1]
1
2
3
4
5
6
7
8
    res:=0
    for _, s := range sum {
		if s-k >= 0 {
			res += count[s-k]
		}
		count[s]++
	}
	return res