Leetcode(一)两数之和

两数之和

暴力

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

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

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

快慢指针

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

作者声明

如有问题,欢迎指正!

相关推荐

  1. Leetcode()之和

    2023-12-11 14:46:03       62 阅读
  2. leetcode-之和

    2023-12-11 14:46:03       46 阅读
  3. LeetCode之和

    2023-12-11 14:46:03       30 阅读
  4. LeetCode 之和

    2023-12-11 14:46:03       25 阅读
  5. LeetCode之和

    2023-12-11 14:46:03       23 阅读
  6. 每日题:LeetCode1.之和

    2023-12-11 14:46:03       47 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2023-12-11 14:46:03       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2023-12-11 14:46:03       106 阅读
  3. 在Django里面运行非项目文件

    2023-12-11 14:46:03       87 阅读
  4. Python语言-面向对象

    2023-12-11 14:46:03       96 阅读

热门阅读

  1. LeetCode-10. 正则表达式匹配

    2023-12-11 14:46:03       62 阅读
  2. LeetCode [简单]合并两个有序链表 (迭代

    2023-12-11 14:46:03       64 阅读
  3. 安卓11修改power按键功能

    2023-12-11 14:46:03       50 阅读
  4. QT DAY1

    QT DAY1

    2023-12-11 14:46:03      52 阅读
  5. Linux命令——网络管理

    2023-12-11 14:46:03       69 阅读
  6. netty使用

    2023-12-11 14:46:03       56 阅读
  7. PIN设备

    PIN设备

    2023-12-11 14:46:03      54 阅读
  8. 【已解决】No module named numba.decorators

    2023-12-11 14:46:03       63 阅读
  9. Azure云WAF服务的CRS规则和DRS规则区别

    2023-12-11 14:46:03       69 阅读
  10. vue实现页面之间的el-select同步数据选项

    2023-12-11 14:46:03       58 阅读
  11. WPF转换器Convert

    2023-12-11 14:46:03       53 阅读