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

    }
}
相关推荐
jr-create(•̀⌄•́)20 分钟前
正则化和优化算法区别
pytorch·深度学习·神经网络·算法
aq55356001 小时前
C语言、C++和C#:三大编程语言核心差异详解
java·开发语言·jvm
老马95271 小时前
opencode4-在已有项目中增加修改功能
java·后端·ai编程
Moe4881 小时前
Spring AI:结构化输出
java·后端·面试
li星野2 小时前
刷题:数组
数据结构·算法
sthnyph2 小时前
TypeScript 与后端开发Node.js
java
逻辑驱动的ken2 小时前
Java高频面试考点场景题08
java·开发语言·面试·求职招聘·春招
不恋水的雨2 小时前
手动调用spring的@Validated校验
java·spring
tankeven2 小时前
HJ182 画展布置
c++·算法
xxjj998a2 小时前
【Spring】Spring MVC案例
java·spring·mvc