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 复制代码
如有问题,欢迎指正!
相关推荐
ZhouDevin37 分钟前
算法论文/数据集3——CLD(TMLR2025)压缩训练集,仅保留对验证集有益的样本
人工智能·深度学习·算法·计算机视觉
Tim_101 小时前
【LeetCode】29、两数相除
算法·leetcode·职场和发展
lhldsg1 小时前
智慧场馆解决方案小程序开发实战:从架构设计到部署指南
java·小程序·uni-app
Freak嵌入式1 小时前
Pico UART 数据收发实战:硬件配置、MicroPython 编程
java·开发语言·单片机·嵌入式硬件·生活
船厂电气自动化ai大模型2 小时前
AI大模型与数学/第63课:矩阵定义、矩阵加法、标量乘法(逐级精讲)
数据结构·人工智能·深度学习·线性代数·算法
余额瞒着我当琳2 小时前
算法修炼 chapter 2 双指针进阶、盛最多水的容器、有效三角形的个数、两数之和、三数之和、四数之和
算法
你压到我腿毛了6662 小时前
C语言冒泡算法(Bubble sort)
c语言·数据结构·算法
devilnumber2 小时前
Oracle 与 MySQL substr 函数差异总结
java·数据库·mysql·oracle
cfm_29142 小时前
线程池阻塞队列
java·开发语言
坐吃山猪3 小时前
【多线程】ThreadPool线程池参数说明
java·网络