根据不同的解答方法,总结leecode不同题型。
方法三:双指针
通过左右两个双指针,在满足一定情况的条件下移动,计数。
- 从开头一起开始的双指针。
- 一个从开头向后走,一个从结尾向前走的双指针。
15. 三数之和
给你一个包含 n 个整数的数组 nums
,判断 nums
中是否存在三个元素 a,b,c ,*使得 *a + b + c = 0 ?请你找出所有满足条件且不重复的三元组。
注意:答案中不可以包含重复的三元组。
示例:
1 | 给定数组 nums = [-1, 0, 1, 2, -1, -4], |
解答:
1 | class Solution: |
1248. 统计「优美子数组」
给你一个整数数组 nums
和一个整数 k
。
如果某个 连续 子数组中恰好有 k
个奇数数字,我们就认为这个子数组是「优美子数组」。
请返回这个数组中「优美子数组」的数目。
示例 :
1 | 输入:nums = [1,1,2,1,1], k = 3 |
解答:
1 | class Solution: |
904. 水果成篮
在一排树中,第 i
棵树产生 tree[i]
型的水果。
你可以从你选择的任何树开始,然后重复执行以下步骤:
- 把这棵树上的水果放进你的篮子里。如果你做不到,就停下来。
- 移动到当前树右侧的下一棵树。如果右边没有树,就停下来。
请注意,在选择一颗树后,你没有任何选择:你必须执行步骤 1,然后执行步骤 2,然后返回步骤 1,然后执行步骤 2,依此类推,直至停止。
你有两个篮子,每个篮子可以携带任何数量的水果,但你希望每个篮子只携带一种类型的水果。
用这个程序你能收集的水果总量是多少?
示例 1:
1 | 输入:[1,2,1] |
示例 2:
1 | 输入:[0,1,2,2] |
解答:
1 | class Solution: |