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

    }
}
相关推荐
小贝IT~2 分钟前
基于SpringBoot的网页时装购物系统-049
java·spring boot·后端
im_AMBER11 分钟前
Leetcode 90 最佳观光组合
数据结构·c++·笔记·学习·算法·leetcode
薛不痒11 分钟前
机器学习算法之SVM
算法·机器学习·支持向量机
独自破碎E12 分钟前
什么是循环依赖
java·mysql·mybatis
heartbeat..12 分钟前
Java NIO 详解(Channel+Buffer+Selector)
java·开发语言·文件·nio
2401_8370885014 分钟前
Hot 146 LRU Cache 实现详解
java·开发语言
悟空码字17 分钟前
文档变形记,SpringBoot实战:3步让Word乖乖变PDF
java·spring boot·后端
用户21903265273521 分钟前
能省事”。SpringBoot+MyBatis-Plus:开发效率提升10倍!
java·spring boot·mybatis
小楼v27 分钟前
构建高效AI工作流:Java生态的LangGraph4j框架详解
java·后端·工作流·langgraph4j