《剑指offer》刷题笔记(知识迁移能力):和为S的两个数字
来源:互联网 发布:阿里云服务器免流教程 编辑:程序博客网 时间:2024/06/06 07:06
《剑指offer》刷题笔记(知识迁移能力):和为S的两个数字
- 转载请注明作者和出处:http://blog.csdn.net/u011475210
- 代码地址:https://github.com/WordZzzz/Note/tree/master/AtOffer
- 刷题平台:https://www.nowcoder.com/
- 题 库:剑指offer
- 编 者:WordZzzz
- 剑指offer刷题笔记知识迁移能力和为S的两个数字
- 题目描述
- 输出描述
- 解题思路
- C版代码实现
题目描述
输入一个递增排序的数组和一个数字S,在数组中查找两个数,是的他们的和正好是S,如果有多对数字的和等于S,输出两个数的乘积最小的。
输出描述
对应每个测试案例,输出两个数,小的先输出。
解题思路
暴力的时间复杂度为O(n^2)。
下面我们想一下时间复杂度为O(n)的算法。我们可以定义两个指针,一个从前往后遍历(ahead),另一个从后往前遍历(behind)。首先,我们比较第一个数字和最后一个数字的和curSum与给定数字sum,如果curSum < sum,那么我们就要加大输入值,所以,ahead向后移动一位,重复之前的计算;如果curSum > sum,那么我们就要减小输入值,所以,behind向前移动一位,重复之前的计算;如果相等,那么这两个数字就是我们要找的数字,直接输出即可。
C++版代码实现
class Solution {public: vector<int> FindNumbersWithSum(vector<int> array,int sum) { vector<int> result; int length = array.size(); if(length < 1) return result; int ahead = length-1; int behind = 0; int curSum; while(ahead > behind){ curSum = array[ahead] + array[behind]; if(curSum == sum){ result.push_back(array[behind]); result.push_back(array[ahead]); break; } else if(curSum < sum) ++behind; else --ahead; } return result; }};
系列教程持续发布中,欢迎订阅、关注、收藏、评论、点赞哦~~( ̄▽ ̄~)~
完的汪(∪。∪)。。。zzz
阅读全文
1 0
- 《剑指offer》刷题笔记(知识迁移能力):和为S的两个数字
- 剑指offer 41题【知识迁移能力】和为S的两个数字
- 《剑指offer》刷题笔记(知识迁移能力):和为S的连续正数序列
- 剑指offer 6.3 知识迁移能力5-和为s的两个数字
- 知识迁移能力-和为S的两个数字
- 【剑指offer】6.3知识迁移能力——面试题41:和为s的两个数字VS和为s的连续正数序列
- 《剑指offer》刷题笔记(知识迁移能力):数组中只出现一次的数字
- 剑指offer 41题【知识迁移能力】和为S的连续正数序列
- 《剑指offer》刷题笔记(知识迁移能力):数字在排序数组中出现的次数
- 剑指offer 6.3 知识迁移能力6-和为s的连续正数序列
- 剑指offer(43):和为s的两个数字
- 剑指offer(39)-和为S的两个数字
- 《剑指offer》刷题笔记(知识迁移能力):二叉树的深度
- 剑指offer系列源码-和为S的两个数字
- 剑指offer--和为S的两个数字
- 《剑指offer》和为S的两个数字
- 剑指offer—和为S的两个数字
- 剑指·offer:和为S的两个数字
- cent0S 7 安装 cdh5.13 笔记之二: 安装java,zookeeper,kafka
- 当点击一个button或者是其它view时对应的item滑到顶部
- Akka(42): Http:身份验证
- 获取某一表格的某一行某一列的值
- Spring Boot实战系列教程
- 《剑指offer》刷题笔记(知识迁移能力):和为S的两个数字
- 22、Android开发基础之Activity之间的跳转
- AIOPS是什么,它的未来如何?
- Monkey高级参数的应用
- postgresql归档失败并在日志文件中存在报错
- 阿里云上配置HTTPS服务
- .net framework4与其client profile版本的区别
- EasyUI实例--tree的使用3
- 后台JSON接收为毫秒数,在前台页面展示yyyy-MM-dd格式