【剑指Offer】和为s的两个数字
发布日期:2022-02-10 08:55:19
浏览次数:26
分类:技术文章
本文共 709 字,大约阅读时间需要 2 分钟。
题目
输入一个递增排序的数组和一个数字s,在数组中查找两个数,使得它们的和正好是s。如果有多对数字的和等于s,则输出任意一对即可。
思路
1.可以用hash表存一下每个数字,其实找到两个数字之和 a+b = target,就相当于找到是否存在 target - b 这个数字。时间复杂度和空间复杂度均为 O(n)。
2.双指针对撞
题解(可行性证明):
代码
class Solution {public: vector twoSum(vector & nums, int target) { //双指针对撞 int left,right; int len = nums.size(); left = 0; right = len - 1; while(left < right){ if(nums[left] + nums[right] > target){ right--; }else if(nums[left] + nums[right] < target){ left++; }else{ return vector {nums[left] , nums[right]}; } } return vector {}; }};
转载地址:https://blog.csdn.net/hanmin822/article/details/106070790 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
哈哈,博客排版真的漂亮呢~
[***.90.31.176]2024年04月13日 17时44分53秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
说说 jBPM 流程定义语言(3)—— state 活动 (状态活动)
2019-04-26
说说如何安装 Jenkins 2.x
2019-04-26
说说什么是 Android 的碎片(Fragment)
2019-04-26
说说如何使用 Android 的碎片(Fragment)
2019-04-26
说说 Android 碎片 (Fragment) 的生命周期
2019-04-26
运行 Tomcat, 在 Intellij IDEA 控制台输出中文乱码的解决方法
2019-04-26
说说 Android 中动态加载布局的实用技巧
2019-04-26
说说 Android 中如何实现同时兼容手机与平板的新闻应用界面
2019-04-26
说说 Android 的广播机制
2019-04-26
说说在 Android 中如何接收系统广播
2019-04-26
说说在 Android 中如何发送自定义广播
2019-04-26
说说如何使用 Android 的本地广播
2019-04-26
说说在 Android 中如何实现强制下线功能
2019-04-26
说说 jBPM 流程定义语言(8)—— sub-process(子流程活动)
2019-04-26
说说 MD5 加密后的类型(16位与 32位的区别)
2019-04-26
说说如何使用 Java 原生方法实现 MD5 加密算法
2019-04-26