leetcode hot 100 之【LeetCode 1. 两数之和】 java实现

server/2024/10/17 23:10:55/

LeetCode 1. 两数之和

题目描述

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

你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。

示例:

给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9
所以返回 [0, 1]

限制:

  • 你不能使用超时的解法,否则会导致超时。
  • 你只能使用 O(n) 的时间复杂度的解法。

Java 实现解法

方法一:暴力法
java">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;}}}return result;}
}
方法二:哈希表法
java">class Solution {public int[] twoSum(int[] nums, int target) {Map<Integer, Integer> map = new HashMap<>();int[] result = new int[2];for (int i = 0; i < nums.length; i++) {int data = target - nums[i];if (map.containsKey(data)) {result[0] = map.get(data);result[1] = i;return result;}map.put(nums[i], i);}return result;}
}

解题思路

  • 暴力法:使用两层循环遍历数组,对于每个元素,再遍历一遍找到和为目标值的另一个元素。这种方法的时间复杂度是 O(n^2)
  • 哈希表法:使用一个哈希表来存储已经遍历过的数字及其索引。在遍历数组的过程中,计算当前数字与目标值的差,并检查哈希表中是否已经存在这个差值。如果存在,那么当前数字和哈希表中对应的数字就是答案。这种方法的时间复杂度是 O(n),且空间复杂度也是 O(n)

http://www.ppmy.cn/server/131186.html

相关文章

代码执行时间

文章目录 System.currentTimeMillisSystem.nanoTimenew DateSpring StopWatch简单的运行时间多个运行时间StopWatch. TaskInfoSpring StopWatch其它API commons-lang3 StopWatch 多种获取代码运行时长的方法&#xff0c; System.currentTimeMillis 通过java内置的方法System.c…

详解安卓和IOS的唤起APP的机制,包括第三方平台的唤起方法比如微信

网页唤起APP是一种常见的跨平台交互方式&#xff0c;它允许用户从网页直接跳转到移动应用程序。 这种技术广泛应用于各种场景&#xff0c;比如让用户在浏览器中点击链接后直接打开某个应用&#xff0c;或者从网页引导用户下载安装应用。实现这一功能主要依赖于URL Scheme、Univ…

网络通信——流量与路由(万字解读)

前言:流量控制与路由更新控制 如何控制网络流量可达性? 方案一:可通过修改路由条目(即对接收和发布的路由进行过滤)来控制流量可达性,这种方式称为路由策略。 方案二:可直接通过依据用户制定的策略进行转发,且该策略优于路由表转发,这种方式称为策略路由。 (1)什么…

无人机之交互系统篇

一、系统构成 无人机交互系统通常由多个子系统组成&#xff0c;包括但不限于&#xff1a; 多模式人机交互装置&#xff1a;这是人机交互系统的基础层&#xff0c;通常包括计算机、局域网、传感器等设备&#xff0c;用于实现操作员与无人机之间的数据交互和指令传递。例如&…

前端框架对比与选择:详尽分析

1. 引言 随着互联网技术的飞速发展,前端开发技术也得到了迅猛提升。无论是大型企业还是中小型开发团队,使用前端框架来简化开发过程、提升开发效率已成为一种普遍现象。如今,市场上有众多的前端框架可供选择,如React、Vue.js、Angular等,如何在这些框架中进行选择成为了开…

vr眼镜? vr视频? 如何使用? -----结合亲身经历稍微介绍一下

废话不多说&#xff0c;直接先说我的实操体验。 &#xff08;我买的型号是&#xff1a;千幻魔镜G04 属于便宜的了&#xff09; 如何用vr眼镜看vr视频 1.准备好vr视频&#xff0c;就是360视频。 2.手机上下载可以播放360视频的软件&#xff0c;播放该视频。 3.把手机放到vr…

科大讯飞大数据面试题及参考答案

数仓分层的理解及其好处,每一层的作用是什么? 数据仓库分层是一种将数据按照不同的逻辑层次进行组织和管理的方法。通常分为源数据层、贴源数据层、数据仓库层、数据集市层和应用层等。 源数据层(ODS层)是数据的原始来源,包括各种业务系统、数据库、文件等。这一层的数据通…

腾讯云视立方TRTCCalling Web 相关

基础问题 什么是 TRTCCalling&#xff1f; TRTCCalling 是在 TRTC 和 TIM 的基础上诞生的一款快速集成的音视频的解决方案。支持1v1和多人视频/语音通话。 TRTCCalling 是否支持接受 roomID 为字符串? roomID 可以 string&#xff0c;但只限于数字字符串。 环境问题 Web …