Leetcode(一)两数之和

两数之和

暴力

双层循环 两两相加 等于目标值 返回 即可

java 复制代码
class Solution {
    public int[] twoSum(int[] nums, int target) {
        for(int i=0;i<nums.length;i++){
            for(int j=0;j<nums.length;j++){
                if(nums[i]+nums[j]==target && i!=j){
                    int[] a={i,j};
                    return a;
                }
            }
        }
        return null;
    }
}

map

java 复制代码
class Solution {
    public int[] twoSum(int[] nums, int target) {
        HashMap<Integer,Integer> map=new HashMap();
        int[] res=new int[2];
        for(int i=0;i<nums.length;i++){
            int a=target-nums[i];
            if(map.get(a)==null){
                map.put(nums[i],i);
            }else{
                res[0]=i;
                res[1]=map.get(a); 
            }
        }
        return res;
    }
}

快慢指针

java 复制代码
class Solution {
    public int[] twoSum(int[] nums, int target) {
        //快速排序 O(nlogn)
        int[] copy=new int[nums.length];
        for(int t=0;t<nums.length;t++){
            copy[t]=nums[t];
        }
        Arrays.sort(nums);
        int[] res=new int[2];
        //快慢指针
        int j=nums.length-1;
        int i=0;
        while(i<nums.length){
            if(i==j)
            {
                return null;
            }
            if(nums[i]+nums[j]<target){
                i++;
            }else if(nums[i]+nums[j]>target){
                j--;
            }else{
                res[0]=i;
                res[1]=j;
                break;
            }
        }
        if(res[0]!=0||res[1]!=0){
            Boolean m=true;
            Boolean q=true;
            for(int k=0;k<nums.length;k++){
                if(copy[k]==nums[res[0]]&& m)
                {
                    res[0]=k;
                    m=false;
                }else if(copy[k]==nums[res[1]] && q)
                {
                    res[1]=k;
                    q=false;
                }
            }
        }
        return res;
    }
}

作者声明

handlebars 复制代码
如有问题,欢迎指正!
相关推荐
yszaygr213837 分钟前
Verilog参数化游程编码RLE模块
算法
SamDeepThinking38 分钟前
从源码到代码:MyBatis-Flex 与 MyBatis-Plus 的逐项对比
java·后端·程序员
望易1 小时前
刚设计的大模型架构-双域耦合认知框架
算法·架构
她的男孩3 小时前
Spring Boot 接 Flowable 工作流:用 3 个注解搭一个请假审批流程
java·后端·架构
复杂网络5 小时前
多个 Claude Code 与多个 Codex 协同工作:设计与实现方案
算法
荣码5 小时前
LLM结构化输出:让AI返回JSON而不是废话,我踩了4个坑
java·python
plainGeekDev7 小时前
Gson → kotlinx.serialization
android·java·kotlin
小bo波15 小时前
Java Swing 图形用户界面实验 —— 从算术练习到游戏开发的完整实践
java·课程设计·gui·游戏开发·扫雷·swing