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

    }
}
相关推荐
XS0301064 分钟前
并发编程 七
java
weixin_468466855 分钟前
图像滤波算法新手实战指南
图像处理·人工智能·算法·计算机视觉·ai·机器视觉·滤波
Ulyanov6 分钟前
深入QML-Python通信 构建响应式交互界面的桥梁设计:QML+PySide6现代开发入门(五)
开发语言·python·算法·交互·qml·系统仿真
重生之我是Java开发战士12 分钟前
【贪心算法】加油站,单调递增的数字,坏了的计算器,合并区间,用最少数量的箭引爆气球
算法·贪心算法
小欣加油20 分钟前
leetcode 3300 替换为数位和后的最小元素
数据结构·c++·算法·leetcode
晚风予卿云月20 分钟前
【枚举】普通枚举
数据结构·c++·算法·竞赛·算法随笔
IronMurphy25 分钟前
【算法五十三】1143. 最长公共子序列
算法
被AI抢饭碗的人27 分钟前
算法:动态规划
算法
妄想出头的工业炼药师27 分钟前
激光雷达点云退化多地图会话
算法·开源
YikNjy30 分钟前
string(c++)
java·服务器·c++