167. 两数之和 II - 输入有序数组

LeetCode_167

题目描述

方法一:暴力法(使用哈希表)

class Solution {
public int[] twoSum(int[] numbers, int target) {
int len = numbers.length;
HashMap<Integer, Integer> map = new HashMap<>();
for(int i=0; i<len; i++){
int next = target - numbers[i];
if(map.containsKey(next)){
return new int[]{map.get(next)+1, i+1};
}
map.put(numbers[i], i);
}
return new int[]{-1,-1};
}
}

复杂度分析

  • 时间复杂度:O(n)
  • 空间复杂度:O(n)

方法二:双指针法

class Solution {
public int[] twoSum(int[] numbers, int target) {
int len = numbers.length;
int low = 0, high = len-1;
while(low <= high){
int sum = numbers[low] + numbers[high];
if(sum == target)
return new int[]{low+1, high+1};
if(sum < target)
low++;
else high--;
}
return new int[]{-1, -1};
}
}

复杂度分析

  • 时间复杂度:O(n),其中 n 是数组的长度。两个指针移动的总次数最多为 n 次。
  • 空间复杂度:O(1)。

最新文章

  1. STM32 使用DMA+DAC+TIMER 输出正弦波
  2. ACM: POJ 3660 Cow Contest - Floyd算法
  3. [转] js == 与 === 的区别
  4. python的类变量与实例变量
  5. 【BZOJ】1503: [NOI2004]郁闷的出纳员(Splay)
  6. 必应(Bing)每日图片获取API
  7. Java 开发 gRPC 服务和客户端
  8. sychronized面试问题浅析
  9. Hibernate+DWR无刷新三级联动
  10. UITextField知多少
  11. Android应用开发学习笔记之绘图
  12. 【Web探索之旅】第三部分第二课:IP地址和域名
  13. GtkImageMenuItem
  14. [bzoj1067][SCOI2007]降雨量——线段树+乱搞
  15. php SeasLog使用以及liunx环境下安装
  16. ViewPager 实现 Galler 效果, 中间大图显示,两边小图展示
  17. Unity之如何使用夜神模拟器logcat
  18. 微信x5内核很鸡贼啊
  19. 微信小程序性能优化技巧
  20. vue+窗格切换+田字+dicom显示_03

热门文章

  1. 分组背包 例题:hdu 1712 ACboy needs your help
  2. 树链剖分(附带LCA和换根)——基于dfs序的树上优化
  3. Educational Codeforces Round 89 (Rated for Div. 2) A Shovels and Swords B、Shuffle
  4. 用了很多年Dubbo,连Dubbo线程池监控都不知道,觉得自己很厉害?
  5. spring再学习之设计模式
  6. Dapr是如何简化微服务的开发和部署
  7. mybaits(十)mybatis常见面试
  8. TypeScript 1.7 &amp; TypeScript 1.8
  9. reStructuredText(.rst) &amp;&amp; read the docs
  10. JSON-LD 结构化数据