LeetCode 1. Two Sum

鸿蒙【ArkTS】使用TS装饰器封装网络请求HTTP 在HarmonyOS应用开发中,通过HTTP访问网络,可以使用官方提供的@ohos.net.http模块。但是官方提供的直接使用不太好使用,需要封装下才好。这里采用TS的装饰器实现AOP效果 完成前后端接口风格的统一 阅读详情

LeetCode 1. Two Sum

一.题目分析
1.要点:
  • each input would have exactly one solution
  • not use the same element twice
2.散列

定义:将元素通过一个函数转换为整型,使该整数可以尽量唯一的代表该元素

例如:

m[nums[i]] = i;//可以体现散列的思想,用空间换时间

散列为什么能够加快查找速度呢? ?

假如:你去超市买4号物品,首先需要找到1号物品的位置,如果超市中的货物不存在存放表,那么当你需要寻找一样物品就需要遍历这个仓库。但如果超市中存在如下的货物存放表(相当于本题中的HashMap),那么你就可以在常数时间复杂度内找到你所要物品的位置。

1 二楼四号口

2 三楼四号口

3 一楼三号口

… …

3.解题思路
  • 暴力搜索:遍历所有的两个数字的组合,然后算其和,时间复杂度为O(N^2)
  • 快速排序:先使用快速排序,时间复杂度为O(n*logn),再分别在数组头尾设置两个标记,每次比较头尾两个数的和,如果比target小,头标记右移,如果大,尾标记左移。但需要注意记录快速排序前后数字的位置变化。
  • HaspMap: 想用线性时间复杂度来解决问题,也就是说只遍历一个数字,而将另一个数字存储起来,使用一个HashMap来建立数字与其坐标位置之间的映射,而HashMap是常数级别的查找效率。故在遍历数组的时候,用target减去遍历得到的数字,就是另一个需要的数字,直接在HashMap中查找需要的数字即可。
二.相关代码
1.Python版本
class Solution:
    def twoSum(self, nums: List[int], target: int) -> List[int]:
        numMap = {} #创建了一个空字典而并非空set  numMap = set()
        
        # for i in range(0,len(nums)):
        #     if target - nums[i] in numMap:
        #         return [ i , numMap[target - nums[i]]]
        #     else:
        #         numMap[nums[i]] = i
        
        # another version 利用pthon 内置enumerate函数,速度更快
        for i,item in enumerate(nums):
            complement = target - item
            if complement in numMap:
                return [i , numMap[complement]]
            else:
                numMap[item] = i
        
enumerate( )函数介绍
  • 作用对象:可遍历的数据对象(如列表、元组或字符串)
  • 作用:将数据对象组合为一个索引序列,同时列出数据下标和数据
#普通for 循环
i = 0
seq = ['one','two']
for element in seq:
    print(i,seq[i])
    i += 1
#for 循环使用enumerate
seq = ['one','two']
for i,item enumerate(seq):
    print(i,item)
#summary: 从中可看出,item表示的是数据,而不用再通过数据小标得到数据
2.C++ 版本
class Solution
{
public:
    vector<int> twoSum(vector<int> &nums, int target)
    {
        vector<int> res;
        unordered_map<int, int> m;

        //以要查找的数作为数组的下标来建立映射表
  
        for (int i = 0; i < nums.size(); i++)
        {
            int needed = target - nums[i];
            if (m.count(needed) && m[needed] != i) 
            {
                res.push_back(i);
                res.push_back(m[needed]);
                break ;
            }
            else
            {
                m[nums[i]] = i;
            }    
        }
        return res;
    }
}; 

RT-DETR改进策略【独家融合改进】| HTB + GFPN + LGAG 解决现有Transformer方法的局限:现有的基于Transformer的方法在处理恶劣天气图像恢复时,为了提高内存利用效率,通常将自注意力操作限制在固定的空间范围或仅仅在通道维度上,这种限制阻碍了Transformer对长距离空间特征的捕捉能力,从而影响了图像恢复的性能。利用天气退化特征:观察到天气引起的退化因素主要导致相似的遮挡和亮度变化,因此希望设计一种能够更好地处理这些特征的模块。 阅读详情

相关推荐

LVGL 实战:虚拟列表与对象复用机制在嵌入式GUI中的性能优化

本文深入探讨LVGL虚拟列表与对象复用机制在嵌入式GUI中的性能优化实践。通过复用机制动态管理UI对象,大幅降低内存占用,实现无限滚动列表的流畅体验。文章详细解析核心算法、内存优化策略及跨平台适配技巧,帮助开发者在资源受限设备上高效处理大量数据展示。

rice5的博客 1106

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

Fanuc机器人的坐标变换矩阵的研究2

一、Funuc用户坐标系的介绍 二、用户坐标系与世界坐标系的坐标转换 三、 以用户坐标系1为基础旋转变换后的用户坐标系 四、关于点的WPR的含义 4.1:点在用户坐标系和世界坐标系下的坐标关系 4.2 通过转换矩阵返回去推导WPR

qq_34047402的博客 1524

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

PMOS过压保护电路设计与仿真优化策略

本文深入探讨PMOS过压保护电路(OVP)的设计与仿真优化策略,详细解析PMOS管选型、稳压管特性及三极管配置等关键要素。通过Proteus仿真案例揭示典型设计误区,并提供响应速度提升、抗干扰设计等进阶优化方案,助力工程师实现高可靠性的电源保护系统设计。

weixin_42620340的博客 440

2024年上半年网络工程师下午真题及答案解析

位于MPLS域边缘、连接其他网络的LSR称为( 3 ),区域内部的LSR称为核心LSR(CoreLSR)IP报文进入MPLS网络时,MPLS入口设备分析IP报文的内容并为其添加合适的标签,所有MPLS网络中的LSR根据标签转发数据,当该IP报文离开MPLS网络时,标签由出口LER弹出。LSP的出口LER称为( 6 )。某高校网络拓扑如下图所示,两校区核心(CORE-1、CORE-2),出口防火墙(NGFW-1、NGFW-2)通过校区间光缆互联,配置OSPF实现全校路由收敛,两校区相距40km。

bsefef的博客 2472

[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

九齐NY8B062F单片机:12位ADC与4路PWM在智能家居控制中的实战应用

本文详细介绍了九齐NY8B062F单片机在智能家居控制中的实战应用,重点解析其12位ADC高精度传感器数据采集和4路PWM精准驱动技术。通过实际案例展示如何利用该单片机实现温湿度监测、灯光调节及电机控制,并分享低功耗设计与抗干扰方案,为低成本高可靠性的智能家居设备开发提供完整解决方案。

rnn9storyteller的博客 730

Leetcode ☞ 1. Two Sum ☆ 【Hashmap】

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

Dr_Unknown的博客 983

提升YOLOv8检测精度的边界框损失函数Focaler-IoU与InnerFocalerIoU的应用与效果

YOLOv8是一种常用的实时目标检测模型,基于CNN(卷积神经网络)结构并结合了一些改进技术以提高检测精度和速度。YOLOv8的核心在于边界框的预测和分类,而准确的边界框预测是提高模型整体性能的关键因素之一。在传统的IoU损失基础上,Focaler-IoU和InnerFocalerIoU进一步聚焦于边界框的边缘区域,通过调整损失权重,更好地关注难以检测的边界框,提高模型的鲁棒性和准确性。# 计算IoU# 计算Focaler-IoU损失在这里,我们定义了。

博客 1340

SAP Joule Studio 能不能用来开发 skill:可以,但它开发的是 Joule 语境下的企业级 skill,而不是替代所有 SAP 开发技术的万能锤

SAP Joule Studio 专为开发Joule技能(Joule skills)而设计,这些技能是执行确定性单步业务动作的原子能力。它通过自然语言接口连接SAP和非SAP系统,适合处理边界清晰、可审计的任务(如创建工单、查询发票)。Joule技能作为会话式业务编排层,与ABAP、CAP等核心技术互补而非替代。开发支持低代码和专业代码两种方式,并具备企业级治理能力,但需要相应的BTP订阅和技术基础。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 201

力扣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

YOLO系列专栏(六):YOLO26热力图可视化 | 解析模型推理逻辑,定位检测关键区域

YOLO26作为新一代目标检测模型,其核心优势是高效的特征提取和精准的目标定位,但模型内部的推理过程的“黑盒”特性,给我们的优化带来了很大困扰:❌ 检测精度低:不知道是模型没学到关键特征,还是特征提取不充分;❌ 出现误检/漏检:无法定位问题根源——是锚框不合适?还是特征图未捕捉到目标?❌ 模型优化盲目:调参、修改网络结构全靠“猜”,缺乏针对性;❌ 难以解释模型行为:实际项目中,需要说明模型“为什么检测到这个目标”,尤其是医疗、工业等对可解释性要求高的场景。而热力图可视化。

qq_36130719的博客 732

Leetcode 1 Two Sum

Question : 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 may...

嗨~ 172

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

LeetCode 1. Two Sum 题解

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

cannonjinx的博客 4192

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

Leetcode 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 each input would have exactly one solution, and you may not use the same...

Smiling_Wang的博客 267

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

LeetCode 1 Two Sum——在数组上遍历出花样

本文始发于个人公众号:TechFlow 今天是周末,和大家一起来看一道算法题。这道题是大名鼎鼎的LeetCode的第一题,也是面试当中非常常见的一道面试题。题目不难,但是对于初学者来说应该还是很有意思,也是一道很适合入门的算法题。 废话不多说,让我们一起来看看题目吧。 Given an array of integers, return indices of the two numbers su...

TechFlow的博客 230

【LeetCode with JavaScript】1.Two Sum

原题网址:https://leetcode.com/problems/two-sum/ 难度:Easy 题目 给定一个整数数组和一个目标值,找出数组中和为目标值的两个数。 你可以假设每个输入只对应一种答案,且同样的元素不能被重复利用。 Example: 给定 nums = [2, 7, 11, 15], target = 9 因为 nums[0] + nums[1] = 2 ...

zwkkkk1的博客 1024

LeetCode 1.Two Sum map 初次使用Markdown*****

外传 经过室友推荐blog转战Markdown编辑,初次使用还觉得挺不方便需要那么多快捷键,不如鼠标点的快。今天这一篇文章才写一半就觉得很好用,就像电脑操作用鼠标点击和windows快捷键操作一样爽,在此向还没转战的朋友推荐,顺便练习自己的操作。 不方便的是代码高亮显示不好。 参考快速上手 记录插入链接格式 题目 题意 注意 思路1 代码

老夫编代码就是一把梭 1144

java two sum 讲解_【LeetCode 力扣】1. Two Sum 两数之和 Java 解法

LeetCode的第一题,英文单词书中 Abandon 一般的存在,让我们来看一下题目:Given an array of integers, returnindicesof the two numbers such that they add up to a specific target.You may assume that each input would haveexactlyo...

weixin_36072221的博客 217

LeetCode力扣 1. 两数之和 Two Sum 题解代码 JavaScript

问题 https://leetcode-cn.com/problems/two-sum/ 练习使用JavaScript解答 /** * @param {number[]} nums * @param {number} target * @return {number[]} */ var twoSum = function(nums, target) { var i, j = nums.length-1, sum; var num2 = []; for(i=0;i&lt

Coding home - 漂流瓶jz 590

[leetCode-1]two-sum (java version)

[leetCode-1]two-sum 欢迎使用Markdown编辑器 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。 新的改变 我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客: ...

fruitful1989的博客 153

Leetcode学习笔记:#1 Two Sum

Leetcode学习笔记:#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 each input would have exactly one solution, and yo...

ccystewart的博客 209

【仅用于个人整理记忆】LeetCode算法题之1. Two Sum(easy)

声明: 如标题所示,因本人为AI路上的新手,文章仅用于辅助个人的整理记忆,理解难免有偏差之处,都是个人拙见,如给其他同僚造成困扰,还请见谅,非常非常非常欢迎私信共同讨论,共同进步 题目描述如下: Given an array of integers, return indices of the two numbers such that they add up to a specific targ...

DaMoWangZQ的博客 272

【Leetcode】1. Two Sum

题目地址: https://leetcode.com/problems/two-sum/ 在一个数组中寻找两个数其和为给定的target,返回这两个数的下标。 思路是用一个哈希表存储数字和其对应的下标,一旦发现target与某个数之差在哈希表里已经存在,就返回两个下标。代码如下: import java.util.HashMap; import java.util.Map; public cla.........

数学、算法爱好者的博客 163

LeetCode1. Two Sum

LeetCode 1.Two Sum

jessir的专栏 356
下一篇: PAT甲级 1001 A+B Format
追风星云
博客等级 码龄9年 1粉丝 3原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值