392. 判断子序列
使用双指针
- i指针指向第一个字符串,j指针指向第二个字符串。
- i、j指向字符相同,i和j都向右移动一次。
- i、j指向字符不同,j向右移动一次。
- 执行完毕后,i指针指向到了第一个字符串的末尾,是子序列,否则不是。
1 | func isSubsequence(s string, t string) bool { |
3132. 找出与数组相加的整数 II
nums1 | 4 | 8 | 12 | 16 | 20 |
---|---|---|---|---|---|
nums2 | 10 | 14 | 18 |
- 需要去除两个元素,
- 将数组进行排序,需要x最小,去掉nums1中两个尽量小的数。
- 遍历前3个nums1中的元素,前3个元素中最少有一个不被移除的数。
- 从第3个开始倒着遍历,nums1[i] 越大答案越小,第一个满足的就是答案。
- 类似于子序列问题,判断nums2 是不是 {nums1[i] + diff} 的子序列,使用双指针
1 | func minimumAddedInteger(nums1 []int, nums2 []int) int { |