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

1、两数之和

两数之和

  • 1、题目描述
  • 2、解答思路

1、题目描述

给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出和为目标值 target 的那两个整数,并返回它们的数组下标。

你可以假设每种输入只会对应一个答案,并且你不能使用两次相同的元素。

你可以按任意顺序返回答案。

2、解答思路

class Solution {
    public int[] twoSum(int[] nums, int target) {
        int len = nums.length;
        // 按照规范,这里的HashMap应定义长度len-1
        // key: nums[i] value: i
        Map<Integer,Integer> hashTable = new HashMap<Integer, Integer>(len-1);

        for(int i = 0;i<len;i++){
        	// 去哈希表中查找是否有target-nums[i]存在,若有则返回结果,否则将其存到哈希表中
            if(hashTable.containsKey(target-nums[i])) {
            	// 无需定义一个新的变量,直接返回new的对象即可
            	return new int[] {i, hashTable.get(target-nums[i])};
            }
            hashTable.put(nums[i], i);
        }
        // 若不存在,则抛出异常或任意返回值
        return new int[0];
    }
}
  • 时间复杂度:O(N),其中 N 是数组中的元素数量。对于每一个元素 x,我们可以 O(1) 地寻找 target - x。
  • 空间复杂度:O(N),其中 N 是数组中的元素数量。主要为哈希表的开销。

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

相关文章:

  • 微信小程序时间弹窗——年月日时分
  • GIT分布式版本控制系统基础操作
  • Kafka认证时Successfully logged in真的认证成功了?
  • 2024年10月25日练习(双指针算法)
  • 【031】基于SpringBoot+Vue实现的在线考试系统
  • LeetCode--买卖股票的最佳时机Ⅲ--动态规划
  • 油猴脚本-GPT问题导航侧边栏增强版
  • ip地址分为几大类-IP和子网掩码对照表
  • 【React】React 的核心设计思想
  • 经验总结:typescript 和 axios 项目中大量接口该如何管理和组织
  • 牛客算法简单题(JS版)
  • R语言在机器学习中的应用
  • unity中的材质(material)贴图(texture)着色器(shader)介绍
  • C++设计模式创建型模式———生成器模式
  • 【jvm】什么是TLAB
  • Ubuntu 22.04系统启动时自动运行ROS2节点
  • 【机器学习】Softmax 函数
  • GraphQL系列 - 第1讲 GraphQL语法入门
  • 计算机毕业设计——ssm基于HTML5的互动游戏新闻网站的设计与实现录像演示2021
  • R_机器学习——常用函数方法汇总
  • Java进阶篇设计模式之四 -----适配器模式和桥接模式
  • 会议录音转文字怎么转?有这6款视频语音转文字工具就够了!
  • 微信小程序时间弹窗——年月日时分
  • G2 基于生成对抗网络(GAN)人脸图像生成
  • Pytorch学习--神经网络--非线性激活
  • 【Unity基础】初识UI Toolkit - 运行时UI