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

复制代码
import java.util.HashMap;
//法1:哈希表
class Solution {
    public int[] twoSum(int[] numbers, int target) {
        HashMap<Integer, Integer> map = new HashMap<Integer, Integer>();
        for(int i = 0; i < numbers.length; i++) {
            if (map.containsKey(target - numbers[i])) {
                return new int[] {map.get(target - numbers[i]) + 1, i + 1};
            } else {
                map.put(numbers[i], i);
            }


        }
        return new int[] {-1, -1};
    }
}
复制代码
//法2:双指针
class Solution {
    public int[] twoSum(int[] numbers, int target) {
        int l = 0;
        int r = numbers.length-1;
        // l不能取等于r,因为不能取重复的元素
        while(l<r){
            int sum = numbers[l]+numbers[r];
            if(sum == target){
                return new int[]{l+1,r+1};
            }else if(sum>target){
                r--;
            }else{
                l++;
            }
        }
        return new int[]{-1,-1};

    }
}
相关推荐
Want5952 分钟前
C/C++圣诞树②
c语言·c++·算法
得物技术15 分钟前
0基础带你精通Java对象序列化--以Hessian为例|得物技术
java·后端·编程语言
橘子在努力21 分钟前
【橘子SpringCloud】OpenFegin源码分析
java·spring boot·spring·spring cloud
我是廖志伟28 分钟前
JVM新生代Eden区域深度解析
java·jvm·memory management
十八旬43 分钟前
苍穹外卖项目实战(day7-2)-购物车操作功能完善-记录实战教程、问题的解决方法以及完整代码
java·开发语言·windows·spring boot·mysql
BIGSHU09231 小时前
java多线程场景3-并发处理和异步请求
java·开发语言·python
索迪迈科技1 小时前
算法题(203):矩阵最小路径和
线性代数·算法·矩阵
默默无名的大学生1 小时前
数据结构——链表的基本操作
数据结构·算法
Neverfadeaway1 小时前
C语言————冒泡排序(例题2)
c语言·数据结构·算法·冒泡排序·升序排列·降序排列
lssjzmn1 小时前
构建实时消息应用:Spring Boot + Vue 与 WebSocket 的有机融合
java·后端·架构