LeetCode——双指针

本文介绍了双指针算法在不同IT题目中的应用,包括寻找数组中两数之和、平方和计算、字符串操作、链表判断以及字典匹配等问题,展示了其在解决数组和字符串相关问题中的高效性。
摘要由CSDN通过智能技术生成

双指针

思想:双指针主要用于遍历数组,两个指针指向不同的元素,从而协同完成任务。

1. 两数之和Ⅱ-输入有序数组167中等

题意解读:从数组中找出满足相加之和等于目标数的两个数——本质是遍历数组

存在前提假设: 只有唯一的答案,不会使用相同的元素,这就决定了遍历一遍数组就可以实现

注意:每步两边指针如何变化

2.两数平方和633中等

题意解读:题设要满足a的平方和 + b的平方和 = c, 所以a和b都应该小于等于c开方,遍历a和b之间的数,如果和小了a就增大,如果和大了b就减小。如果找不到这样的两个数,就返回false。

3. 反转字符串中的元音字母345

题意解读:遇到元音字母就反转

4. 验证回文串儿680简单

题意解读:一个字符串s,可以从中删除一个字符,判断能否成为回文字符串。

正常思路:删除一个元素,检查是不是回文串

改进:先判断,到元素不相等的地方跳过一个元素继续判断——减少很多重复操作

5. 合并两个有序数组88简单

题意解读:两个非递减整数数组,按非递减顺序合并到原第一个数组

正常思路:开辟一个辅助空间,双指针,一个指向第一个数组,一个指向第二个数组,比较数字的大小,移动指针位置

改进思路:不开辟额外的空间,从后向前进行遍历

6. 环形链表141简单

题意解读:判断链表中是否有环

思路1:hash表,讲节点放在表中,遍历一遍看是否有重复

思路2:快慢指针,如果存在环,快指针一定会追上慢指针

7. 通过删除字母匹配到字典里最长单词524中等

题意解读:任意删除字符串中的字符,找到字典中匹配且长度最长的,如果长度相同,返回字符串排序最小的

正常思路:字符串与字典中的每个字符串使用双指针

改进:动态规划——还没看懂

贪心思想

保证每次操作都是局部最优的,并且最后得到的结果是全局最优的

  • 8
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值