2-sum问题
来源:互联网 发布:windows10如何下载软件 编辑:程序博客网 时间:2024/05/22 09:17
本总结是是个人为防止遗忘而作,不得转载和商用。
题目
给定N个不同的数以及某定值sum,找到这N个数中的两个数,使得它们的和为sum。
如给定数组[0, 3, 7, 9,11,14, 16, 17],sum=20,则返回[3,17],[9,11]。
算法步骤
1,排序
2,令i=0,j=n
3,直到i ≥j为止:
如果T[i=0] + T[j=N]= 20:记录解,然后 i++, j--
如果T[i=0] +T[j=N] < 20:则 i++
如果T[i=0] +T[j=N]> 20:则 j--
如果扩展到3-sum,如:Ti + Tj +Tk = sum
那就将其改成2-sum,即:Ti + Tj =sum - Tk,于是就是在上面的基础上在遍历边Tk。
Hash解法
把数组弄到Hash表中:
1,申请足够大的空间H,对于某个值X,将其代入函数f(x)中,这个f(x)会返回index,这个index是几就把x放在第几个位置。
2,遍历a[i],如果f(Sum -a[i])在Hash表中,那就找到了一个解。
0 0
- 2sum问题和3sum问题
- 2-Sum问题
- 2-sum问题
- 2-sum问题
- 解决2sum问题
- 2-sum问题
- 2sum/3sum/ksum 问题
- 2Sum/3Sum/3SumClosest/4Sum系列问题
- 2sum,3sum,4sum问题总结
- 2Sum,3Sum,4Sum问题总结
- 【算法】2SUM/3SUM/4SUM问题
- 2sum问题经典解答
- Leetcode之2Sum问题
- 求和问题总结(leetcode 2Sum, 3Sum, 4Sum, K Sum)
- 求和问题总结(leetcode 2Sum, 3Sum, 4Sum, K Sum)
- 求和问题总结(leetcode 2Sum, 3Sum, 4Sum, K Sum)
- [leetcode] 求和问题总结(2Sum, 3Sum, 4Sum, K Sum)
- 求和问题总结(leetcode 2Sum, 3Sum, 4Sum, K Sum)
- 使用tapestry-delegate提高Tapestry运行效率
- 一个Tomcat支持不同的域名访问各自不同程序的配置方法
- GPIO 模拟I2C
- Android设置ScrollView回到顶部的三种方式
- 配置 Tapestry
- 2-sum问题
- idear tomcat端口占用无法启动。cmd下 netstat -ano ;然后任务管理器下删除对应的PID
- Ext加载数据源前拼接参数
- 一些关于iterm2 的快键键
- linux如何看一个文件夹内(包括子文件夹内)n天内修改了的文件,并且按修改时间排序(最下方是最新的)
- Tapestry灵魂——字节码生成
- 利用Java自带的MD5加密
- C#中,This的用法
- 如何获得当前窗口的hwnd?的问题整理