Two Sum II
来源:互联网 发布:贷贷兴隆网络贷款 编辑:程序博客网 时间:2024/05/20 05:09
题目描述
给定一个已经按升序排列的数组,找到两个数使他们加起来的和等于特定数。
函数应该返回这两个数的下标,index1必须小于index2。注意返回的值不是 0-based。
样例
给定数组为 [2,7,11,15] ,target = 9
返回 [1,2]
首先想到的是通过双重循环遍历数组中所有的数据对找出和为target的两个数,但是这样做的时间复杂度为O(n²)。
解题思路
因为数组是已排序的,设两个指针l和r,l指向索引为0处,r指向索引为length-1处。若nums[l]+nums[r]大于target,则r-1使两数和变小,反之则使l+1使两数和变大从而不断接近target直至相等。此时时间复杂度为O(n)
代码:
public class Main { /* * @param nums: an array of Integer * @param target: target = nums[index1] + nums[index2] * @return: [index1 + 1, index2 + 1] (index1 < index2) */ public static int[] twoSum(int[] nums, int target) { // write your code here int l = 0; int r = nums.length-1; while ((nums[l]+nums[r])!=target){ if ((nums[l]+nums[r])<target){ l++; } if((nums[l]+nums[r])>target){ r--; } } int[] res = {l+1,r+1}; return res; }}
阅读全文
0 0
- [leetcode] Two Sum II
- Two Sum II
- #443 Two Sum II
- 167. Two Sum II
- 167. Two Sum II
- 167. Two Sum II
- 167. Two Sum II
- 167. Two Sum II
- LeetCode : Two Sum II
- Two Sum II
- 167. Two Sum II
- 167. Two Sum II
- 167. Two Sum II
- leetcode_167 Two Sum II
- 167. Two Sum II
- LeetCode167.Two Sum II
- leetcode167~Two Sum II
- 167. Two Sum II
- 整数划分
- centos7 python3+django+uwsgi+nginx配置,部署
- Go工具和调试详解
- rocketmq CONSUME_FROM_LAST_OFFSET CONSUME_FROM_LAST_OFFSET
- 三年Java软件工程师应该掌握的技能
- Two Sum II
- 1、java并发编程实践(1)
- express目录结构
- 项目笔记--Hybrid和express
- MySQL error number 2003
- js编码实际技巧
- Cookie用于商品购物车
- C++ 文件输入
- Python之文件处理