当前位置: 首页 > article >正文

LeetCode热题100(一)—— 1.两数之和

LeetCode热题100(一)—— 1.两数之和

  • 题目描述
  • 代码实现
  • 思路解析

  • 你好,我是杨十一,一名热爱健身的程序员
  • 在Coding的征程中,不断探索与成长
  • LeetCode热题100——刷题记录(不定期更新)
    此系列文章用于记录我在学习 LeetCode热题100 过程中的总结和收获
    愿与诸君共同探讨,在代码世界里携手共进,攻克难题,提升自我

题目描述

给定一个整数数组 nums 和一个整数目标值 target,
请你在该数组中找出和为目标值 target 的那两个整数,并返回它们的数组下标。
你可以假设每种输入只会对应一个答案,并且你不能使用两次相同的元素。
你可以按任意顺序返回答案。
示例 1:
        输入:nums = [2,7,11,15], target = 9
        输出:[0,1]
        解释:因为 nums[0] + nums[1] == 9 ,返回 [0, 1] 。
示例 2:
        输入:nums = [3,2,4], target = 6
        输出:[1,2]
示例 3:
        输入:nums = [3,3], target = 6
        输出:[0,1]
提示:
        2 <= nums.length <= 104
        -109 <= nums[i] <= 109
        -109 <= target <= 109
        只会存在一个有效答案
进阶:你可以想出一个时间复杂度小于 O(n2) 的算法吗?

代码实现

// 思路一:双循环
class Solution {
    public int[] twoSum(int[] nums, int target) {
        int[] result = new int[2];
        for(int i=0; i<nums.length; i++)
            for(int j=i+1; j<nums.length; j++){
                if((nums[i]+nums[j])==target){
                    result[0] = i;
                    result[1] = j;
                }
            }
        return result;
    }
}
// 思路二:哈希表
class Solution {
    public int[] twoSum(int[] nums, int target) {
        Map<Integer, Integer> map = new HashMap<>();
        for (int i = 0; i < nums.length; i++) {
            int num = target - nums[i];
            if (map.containsKey(num)) {
                return new int[]{i, map.get(num)};
            }
            map.put(nums[i], i);
        }
        return null;
    }
}

思路解析

  1. 输入:整数数组和目标值int[] nums, int target
  2. 输出:两个元素下标 [i, j]nums[i] + nums[j] = target
  3. 思路一:双层循环
    • 时间复杂度: O ( n 2 ) O(n^2) O(n2)
    • 空间复杂度: O ( 1 ) O(1) O(1)
  4. 思路二:哈希表
    • 时间复杂度: O ( n ) O(n) O(n)
    • 空间复杂度: O ( n ) O(n) O(n)

  • 你好,我是杨十一,一名热爱健身的程序员
  • 在Coding的征程中,不断探索与成长
  • LeetCode热题100——刷题记录(不定期更新)
    此系列文章用于记录我在学习 LeetCode热题100 过程中的总结和收获
    愿与诸君共同探讨,在代码世界里携手共进,攻克难题,提升自我

http://www.kler.cn/a/522510.html

相关文章:

  • 如何解决跨浏览器兼容性问题
  • Android Studio安装配置
  • 【教学类-89-02】20250128新年篇02——姓名藏头对联(星火讯飞+Python,五言对联,有横批)
  • 双层Git管理项目,github托管显示正常
  • 论文笔记(六十三)Understanding Diffusion Models: A Unified Perspective(三)
  • 将5分钟安装Thingsboard 脚本升级到 3.9
  • Autogen_core: Reflection
  • Nuxt:利用public-ip这个npm包来获取公网IP
  • C#字典Dictionary用法详解
  • TikTok 推出了一款 IDE,用于快速构建 AI 应用
  • leetcode 1750. 删除字符串两端相同字符后的最短长度
  • 双选会资料录入步骤
  • 什么是卷积神经网络?
  • linux实际中的常用命令
  • SQL Server约束
  • FPGA 使用 CLOCK_LOW_FANOUT 约束
  • 简易CPU设计入门:控制总线的剩余信号(二)
  • 双向链表在系统调度、游戏、文本编辑及组态方面的应用
  • 【llm对话系统】LLM 大模型Prompt 怎么写?
  • 2025多目标优化创新路径汇总
  • 快速生成2D卡通人物的AI工具:开启Live2D角色创作的新时代
  • SuperAGI - 构建、管理和运行 AI Agent
  • CAN总线数据采集与分析
  • React第二十六章(createPortal)
  • 学习率衰减策略
  • 常见字符串相关题目