力扣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};

    }
}
相关推荐
水月wwww2 分钟前
【算法设计】分支限界法
算法·分支限界法
茶猫_8 分钟前
C++学习记录-旧题新做-链表求和
数据结构·c++·学习·算法·leetcode·链表
毕设源码-朱学姐12 分钟前
【开题答辩全过程】以 日程管理系统为例,包含答辩的问题和答案
java
yuniko-n15 分钟前
【牛客面试 TOP 101】链表篇(一)
数据结构·算法·链表·面试·职场和发展
a努力。16 分钟前
京东Java面试被问:双亲委派模型被破坏的场景和原理
java·开发语言·后端·python·面试·linq
小毛驴85022 分钟前
Maven同时配置阿里云仓库和私有仓库
java·阿里云·maven
2501_9418053122 分钟前
从微服务网关到统一安全治理的互联网工程语法实践与多语言探索
前端·python·算法
刘975323 分钟前
【第25天】25c#今日小结
java·开发语言·c#
源代码•宸23 分钟前
Leetcode—1161. 最大层内元素和【中等】
经验分享·算法·leetcode·golang
不如打代码KK25 分钟前
Springboot如何解决跨域问题?
java·spring boot·后端