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

    }
}
相关推荐
心态与习惯30 分钟前
Julia 初探,及与 C++,Java,Python 的比较
java·c++·python·julia·比较
py有趣36 分钟前
力扣热门100题之不同路径
算法·leetcode
一叶飘零_sweeeet42 分钟前
优秀文章合集
java
_日拱一卒1 小时前
LeetCode:25K个一组翻转链表
算法·leetcode·链表
zopple1 小时前
ThinkPHP5.x与3.x核心差异解析
java·python·php
啊哦呃咦唔鱼1 小时前
LeetCodehot100-394 字符串解码
算法
小欣加油1 小时前
leetcode2078 两栋颜色不同且距离最远的房子
数据结构·c++·算法·leetcode·职场和发展
我真不是小鱼1 小时前
cpp刷题打卡记录30——轮转数组 & 螺旋矩阵 & 搜索二维矩阵II
数据结构·c++·算法·leetcode
南境十里·墨染春水1 小时前
C++ 笔记 thread
java·开发语言·c++·笔记·学习
南境十里·墨染春水1 小时前
C++ 笔记 高级线程同步原语与线程池实现
java·开发语言·c++·笔记·学习