首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >LeetCode热题 首题 两数之和

LeetCode热题 首题 两数之和

作者头像
人不走空
发布2024-02-20 19:12:02
发布2024-02-20 19:12:02
13500
代码可运行
举报
文章被收录于专栏:学习与分享学习与分享
运行总次数:0
代码可运行

暴力破解法,运用数组两数之和相加,直到两数之和相加成目标值为止。但时间复杂度为O(1)

代码语言:javascript
代码运行次数:0
运行
复制
class Solution {
    public int[] twoSum(int[] nums, int target) {
        int[] result = new int[2];
        int n = nums.length;
        for(int i=0;i<n;i++){
            for(int j=i+1;j<n;j++){
                if(nums[i]+nums[j]==target){
                    result[0]=i;
                    result[1]=j;
                    break;
                }
            }
        }
        return result;
    }
}

 哈希表方法:通过利用哈希表存储,我们通过哈希表,查找表中是否有target-nums[i]这个数据,

若没有,哈希表插入x,并伴随记录数组位置。、

哈希表方法将时间复杂度降低到从 O(N) 降低到 O(1)

代码语言:javascript
代码运行次数:0
运行
复制
class Solution {
    public int[] twoSum(int[] nums, int target) {
        Map<Integer,Integer> ht=new HashMap<Integer,Integer>();
        for(int i = 0;i < nums.length;i++){
            if(ht.containsKey(target-nums[i])){
                return new int[]{ht.get(target-nums[i]),i};
            }
            ht.put(nums[i],i);
        }
        return new int[0];
    }
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-11-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档