LeetCode---Two Sum

leetcode解题笔记:Two sum系列解题思路 Two Sum 3Sum 3Sum Closest Two SumGiven an array of integers, return indices of the two numbers such that they add up to a specific target.You may assume that each input would have exactly one solution, 阅读详情

无意间在优快云博客上逛时看到了leetcode这个好东西。leetcode是一个再线提交代码的东西,重要的是里面的题目大部分都是各IT大公司笔试时的常考题。博主果断决定有空时做做里面的题了,并与大家分享

原题地址:https://oj.leetcode.com/problems/two-sum/

这个题看似简单,相信几乎所有人也都能写出来,但问题是效率!很多人都能想到一对一对的比较,但这样的时间复杂度为O(n^2)。下面就是很多人能想到的代码,我最开始也是想到的下面的方法。

public class Solution {
    public int[] twoSum(int[] numbers, int target) {

        int[] result = new int[2];
        for(int i=0;i<numbers.length;i++) {

            for(int j=i+1;j<numbers.length;j++) {
                check = numbers[i] + numbers[j];
                if(check == target){
                   result[0] = i+1;
                   result[1] = j+1;
                   return result;
                }
            }
        }

        return null;
    }
} 

写完一提交,judge的结果是Time exceeded!! 时间复杂度太高了!这里就得表扬leetcode了,leetcode比较好的地方就在它不仅会检测你代码的正确性,它还会检测你代码的执行效率。

提交没有被accept,只有接着尝试其他方法,在论坛里看了看才知道大牛们们都是用Hash表来优化的。使用哈希表,时间复杂度为O(n),同时空间复杂度也是O(n)。下面是使用Hash表来解决时的代码:

public class Solution{
public int[] twoSum(int[] numbers, int target) {
    int[] result = new int[2];
    Map<Integer, Integer> hashMap = new HashMap<Integer, Integer>();
    for (int i = 0; i < numbers.length; i++) {
        if (hashMap.containsKey(target - numbers[i])) {
            result[1] = i + 1;
            result[0] = hashMap.get(target - numbers[i]);
            return result;
        }
        hashMap.put(numbers[i], i + 1);
    }
    return result;
}
}

本文为原创,转载请注明转载自:http://blog.youkuaiyun.com/computerme/article/details/40396395


LeetCode算法详解(一)--Two Sum 这个题目的目的就是给定数组以及目标和,找出数组中和为给定目标的两个数并且输出,要求是每个数只能使用一次,且输出的为两个数在数组中的位置。比较容易想到的方法是遍历数组中的所有数字,此种方法时间复杂度比较高O(n^2),代码如下:class solution{ public: int[] twosum(int[] nums,int target){ int len = nums.length;... 阅读详情

相关推荐

LeetCode第一题(TwoSun)

这个方法实现的程序通过了LeetCode检测,提示用了16个测试,用时492ms,超过了75%的人

leetcode 第一题

这是一道很简单的题目,就是给定一个数组和一个目标数。然后从给定的数组中找出两个数使得这两个数的和为给定的目标数,并返回这两个数在给定的数组中的索引。 方法一:暴力求解 暴力求解就是直接遍历所有的情况找到解。代码如下: class Solution { public: vector&lt;int&gt; twoSum(vector&lt;int&gt;&amp; nums, int...

wuye999的博客 265

【Apollo规划模块探秘】—— 场景(Scenario)驱动的决策引擎

本文深入解析了Apollo自动驾驶平台规划模块的核心机制——场景(Scenario)驱动的决策引擎。文章通过类比日常驾驶,阐述了规划模块如何像经验丰富的司机一样,根据不同的路况(如车道跟随、无保护左转)切换不同的“驾驶模式”。重点剖析了场景管理器(ScenarioManager)如何基于感知信息进行场景判断与切换,以及“场景-阶段-任务”双层状态机如何精密协作,实现灵活、高效且安全的轨迹规划。

rnn9storyteller的博客 278

Leetcode哈希表类题目

242. Valid Anagram:Easy。unordered_map。 217. Contains Duplicate:Easy。unordered_set。 202. Happy Number:Easy。注意这里使用哈希表的方法和用途。不熟悉。 36. Valid Sudoku:Easy。利用数组模拟哈希表。不熟悉。 219. Contains Duplicate II:Easy。 299.

Bryan要加油 3251

YOLOv8知识蒸馏实战:用BCKD和LD在自制数据集上分别提点1.63%和1.69%的保姆级教程

本文详细介绍了在YOLOv8模型上应用知识蒸馏技术(BCKD和LD方法)的实战教程,通过自制数据集实现性能提升1.63%和1.69%。内容涵盖环境配置、模型选择、BCKD和LD的具体实现及调参技巧,适合目标检测领域的开发者和研究者。

weixin_29082143的博客 245

手把手教你用RoboTwin训练RDT模型:从环境配置到实战微调(避坑指南)

本文提供了一份详尽的避坑指南,手把手教你如何在RoboTwin开源仿真环境中,从零开始配置环境、采集数据并完成RDT视觉语言动作模型的实战微调。文章涵盖了环境搭建、数据流水线构建、模型配置与训练等关键步骤,旨在帮助研究者和开发者高效利用仿真数据,低成本探索具身智能应用。

weixin_29094979的博客 131

LeetCode 1. Two Sum 题解

本题是算法的经典入门问题,主要考察对哈希表的理解和应用。通过使用哈希表,我们可以将时间复杂度从 O(n²) 降低到 O(n),大大提高了算法的效率。哈希表的核心思想是:通过哈希表来存储已经遍历过的元素及其下标,这样当我们遍历到当前元素时,可以在 O(1) 的时间复杂度内检查目标值与当前元素的差值是否已经存在于哈希表中。这种方法不仅适用于两数之和问题,还可以应用于许多其他需要快速查找元素的场景。掌握哈希表的使用,对于解决这类问题非常重要。

cannonjinx的博客 4192

基于用户的协同过滤算法(userCF)

1.定义 userCF:当一个用户A需要个性化推荐时,可以先找到和他有相似兴趣的其他用户,然后把那些用户喜欢的、而用户A没有听说过的物品推荐给A。这种方法称为基于用户的协同过滤算法。 基于用户的协同过滤算法主要包括两个步骤: 2.第一步:找到和目标用户兴趣相似的用户集合。 利用行为的相似度计算兴趣的相似度。给定用户u和用户v,令N(u)表示用户u曾经有过正反馈的物品集合,令N(v)为用户v曾经有过...

jiangdongxiaobawang的博客 1万+

ACM之LeetCode中Two Sum

题目信息: Given an array of integers, return indices of the two numbers such that they add up to a specific target. You may assume that each input would have exactly one solution. Example: G

Microstrong 864

深入解析Docker Overlay2磁盘空间占用问题及高效清理策略

本文深入解析了Docker Overlay2存储驱动导致磁盘空间占用的核心原因,包括镜像与容器残留、日志文件膨胀、应用层泄漏及驱动特性。提供了从全局检查到精准定位的完整排查方法,并给出了从常规清理到配置优化的多维度高效清理策略,帮助用户从根本上解决Docker磁盘空间问题。

data3的博客 900

脑影像分析软件推荐 | JuSpace

JuSpace是一种允许基于 MRI 测量与核成像衍生估计的跨模态关联的工具包,它涵盖各种神经递质系统,包括多巴胺能、血清素能、去甲肾上腺素能和 GABA(γ-氨基丁酸) 神经传递。JuSpace 由一组 Matlab 功能以及涵盖各种受体系统的 PET 受体图谱组成。

NHKJ_ZF的博客 1707

LeetCode刷题笔录 Two Sum

Two Sum Given an array of integers, find two numbers such that they add up to a specific target number. The function twoSum should return indices of the two numbers such that they add up to the

likecool21的专栏 1万+

2023年全国职业院校技能大赛 网络系统管理服务模块 Linux部分讲解

网络系统管理,Linux,服务部署,Chinaskills,2023国赛

weixin_62926639的博客 1545

LeetCode 1 Two Sum题解

题目地址:https://leetcode.com/problems/two-sum/ 1. Two Sum 难度:简单 Given an array of integers, return indices of the two numbers such that they add up to a specific target. You may assume that e

赞美月亮的专栏 665

从数据库到数据仓库:数据仓库导论

本文为数据仓库导论,旨在介绍数据仓库的基本理念和应用场景,帮助读者理解数据仓库的重要性及其在企业中的实际应用。

探索大数据世界 - 深入解析数据存储、分布式计算与人工智能 2784

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

LeetCode--Python解析【Two Sum】

题目:方法1:暴力算法,直接循环套循环。class Solution: def twoSum(self, nums, target): """ :type nums: List[int] :type target: int :rtype: List[int] """ result = list(...

ZJRN1027的博客 4896

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

[LeetCode] No.1 Two Sum

“做程序员太辛苦了,我想换行……我该怎么办?” “敲一下回车。” Two Sum(两数之和) 题目: Given an array of integers, return indices of the two numbers such that they add up to a specific target. You may assume that each input would...

但行好事 莫问前程 348

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

Leetcode力扣 1 | 两数之和 Two Sum —— python

Leetcode力扣 1 | 两数之和 Two SumQuestionAnswerBrute Force 暴力求解法HashTable 哈希表法 该系列以提高编程能力、学习数据结构与算法为目的 编程语言:python Question 给定一个数组nums、一个目标target值(以下简写成nums、target) 我们的目的是在nums中,找到两个元素,使其相加等于target值,然后返回这两个元素在nums中的索引,就是数组下标。 题目中给了三个示例: 第一个返回下标0和1,因为2与7的和为9

idl1ng的博客 1140

【Leetcode】001 Two Sum

【Leetcode】001 Two Sum题目Given an array of integers, return indices of the two numbers such that they add up to a specific target.You may assume that each input would have exactly one solution, and you m

LYZ 4829

力扣Leetcode1 | 两数之和(Two Sum)

暴力法、一次哈希表和两次哈希表法 https://blog.csdn.net/zhushaojiecumt/article/details/102846196 视频: https://www.bilibili.com/video/BV1Li4y1E7gT?p=1 双指针法 如果列表是无序的,需要先排序,使用双指针,分别指向头、尾。如果两数之和大于target,尾指针前移,如果两数之和小于target,首指针后移。 class Solution: def twoSum(self, nums: List

maoersong的专栏 358

【Python刷力扣hot100】1. Two Sum

本文介绍了在整数数组中寻找两数之和等于目标值的两种解法。暴力搜索法通过双重循环遍历所有组合,时间复杂度O(n²),空间复杂度O(1)。哈希表法则利用字典存储已遍历元素,以空间换时间,时间复杂度降至O(n),空间复杂度O(n)。两种方法均能有效解决问题,但哈希表法在效率上更优。文章包含Python代码示例和复杂度分析。

tao355667 907

Leetcode ☞ 1. Two Sum ☆ 【Hashmap】

给一数组和一target数,有两个元素的和为target。求这两个元素的下标的和。

Dr_Unknown的博客 983

Leetcode 01 Two Sum

Leetcode 01 Two Sum ##Description 给定一个整数数组和一个目标值,找出数组中和为目标值的两个数。 你可以假设每个输入只对应一种答案,且同样的元素不能被重复利用。 示例: 给定 nums = [2, 7, 11, 15], target = 9 因为 nums[0] + nums[1] = 2 + 7 = 9 所以返回 [0, 1] ##solution metho...

jqc_ustc的博客 257

leetcode: 哈希——two-sum,3sum,4sum

1). two-sum Given an array of integers, find two numbers such that they add up to a specific target number. The function twoSum should return indices of the two numbers such that they add ...

156
上一篇: ROC曲线详解
下一篇: opencv图像处理-卷积
IT修道者
IT修道者 领域专家: 人工智能技术领域 领域专家: 人工智能技术领域
博客等级 码龄17年 326粉丝 95原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值