Leetcode_01【两数之和】
文章目录:
- 题目
- 脚本一及注释
- 脚本逻辑
- 脚本二及注释
- 脚本逻辑
题目:
给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。
你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。
示例:
给定 nums = [2, 7, 11, 15], target = 9
因为 nums[0] + nums[1] = 2 + 7 = 9
所以返回 [0, 1]
脚本一及步骤注释
class Solution: #定义一个名为Solution的类
def twoSum(self, nums: List[int], target: int) -> List[int]: #此处是leetcode给定的输出格式
zidian = {} #定义一个空字典
for i,j in enumerate(nums): #使用枚举的方法enumerate对列表nums的元素进行遍历,i为列表元素的索引号,j为索引号为i对应的列表元素
k = target - j #使用和值减去其中一个加数得到另一个加数
if k in zidian: #对字典的键进行遍历,查看是否有键的值为k
return(i,zidian.get(k)) #如果有键的值为k,则返回遍历列表当前元素的索引号及字典中键为k所对应的值
zidian[j] = i #如果没有在字典中找到键的值为k的情况,则把遍历列表的当前元素的元素值作为键,索引号为值 加入到字典中
result = Solution() #创建一个Solution的类
print(result.twoSum) #调用类中的方法,由于此方法会返回值,所以将值打印出来即可
【处理逻辑】
- 此脚本处理逻辑是生成一个新的数据记录处即字典,用于存储已经遍历的列表元素的索引号及元素值
- 由于列表遍历过程中是与字典进行遍历的,所以字典的键值是不会重复的
- 通俗来讲就是:一开始桶子是空的,不断拿数据与桶子里的数据进行比对,如果没有找到比对目标的值会放到桶子里,然后进行下一次的比对
脚本二及步骤注释
class Solution: #同上
def twoSum(self, nums: List[int], target: int) -> List[int]: #同上
for i in range(0,len(nums)): #从0到列表元素个数组成的数列进行遍历
aa = nums[i] #获取一个列表元素
bb = target - aa #求和值的另一个数值
for j in range(i+1,len(nums)): #对列表剩余元素进行不重复遍历
if bb == nums[j]: #如果存在与另一个数值相等的数
return(i,j) #返回两数的索引号
脚本逻辑
- 此脚本是使用逼近的思想,通俗来讲就是:用第一个数与列表中其余的值进行求和,查看是否与目标值一致
- 若一致,则求出两值得索引号即可
- 若不一致,丢弃第一个值,使用第二个值与剩余得值进行比较(不包括第一个值),直到遍历所有值或者遇到合适值为止
Leetcode_01【两数之和】的更多相关文章
- 给定数组A,大小为n,现给定数X,判断A中是否存在两数之和等于X
题目:给定数组A,大小为n,现给定数X,判断A中是否存在两数之和等于X 思路一: 1,先采用归并排序对这个数组排序, 2,然后寻找相邻<k,i>的两数之和sum,找到恰好sum>x的 ...
- LeetCode 170. Two Sum III - Data structure design (两数之和之三 - 数据结构设计)$
Design and implement a TwoSum class. It should support the following operations: add and find. add - ...
- LeetCode 371. Sum of Two Integers (两数之和)
Calculate the sum of two integers a and b, but you are not allowed to use the operator + and -. Exam ...
- LeetCode 167. Two Sum II - Input array is sorted (两数之和之二 - 输入的是有序数组)
Given an array of integers that is already sorted in ascending order, find two numbers such that the ...
- [LeetCode] Two Sum IV - Input is a BST 两数之和之四 - 输入是二叉搜索树
Given a Binary Search Tree and a target number, return true if there exist two elements in the BST s ...
- [LeetCode] 1. Two Sum 两数之和
Part 1. 题目描述 (easy) Given an array of integers, return indices of the two numbers such that they add ...
- Leetcode(一)两数之和
1.两数之和 题目要求: 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个整数,并返回他们的数组下标. 你可以假设每种输入只会对应一个答案.但是,你不能重 ...
- 南大算法设计与分析课程OJ答案代码(1)中位数附近2k+1个数、任意两数之和是否等于给定数
问题1 用来测试的,就不说了 问题2:中位数附近2k+1个数 给出一串整型数 a1,a2,...,an 以及一个较小的常数 k,找出这串数的中位数 m 和最接近 m 的小于等于 m 的 k 个数,以及 ...
- 两数之和,两数相加(leetcode)
我们都知道算法是程序员成长重要的一环,怎么才能提高算法呢, 出来在网上看视频之外,动手练习是非常重要的.leetcode 就是一个非常好的锻炼平台. 1. 两数之和,在 leetcode 里面是属于 ...
- leetcode刷题--两数之和(简单)
一.序言 第一次刷leetcode的题,之前从来没有刷题然后去面试的概念,直到临近秋招,或许是秋招结束的时候才有这个意识,原来面试是需要刷题的,面试问的问题都是千篇一律的,只要刷够了题就差不多了,当然 ...
随机推荐
- 安装Java环境
一.下载JDK https://www.oracle.com/technetwork/java/javase/downloads/index.html 二.exe安装 默认路径 C:\Program ...
- ubuntu & centos RTL88x2BU 无线网卡驱动(v5.1.7_19806) 安装
前提 大部分情况都是因为当前系统的内核不满足驱动文件的编译条件,可以通过驱动文件中的文档来确定是否要升级内核还是降级内核, 对于升级内核只需要下载指定的内核版本安装即可,降级内核(暂时不清楚是否会 ...
- Windows包管理器
Windows包管理器 Scoop 参考 安装命令 set-executionpolicy remotesigned -scope currentuser #用powershell执行 iex (ne ...
- git 命令归纳版
1.克隆: 单纯的克隆名字: git clone [url] 自定义新建项目名称: git clone [url] [项目名字] 2.跟踪文件: git add [文件名] 3.添加忽略文件 ...
- C/C++顺序数据结构——动态数组测试
这是一篇顺序表数据结构——动态数组的测试, 实现 //初始化数组 //插入 //根据位置删除 //根据值删除 //查找 //打印 //释放动态数组的内存 //清空数组 //获得动态数组容量 //获得动 ...
- 拼多多后台开发面试真题:如何用Redis统计独立用户访问量
众所周至,拼多多的待遇也是高的可怕,在挖人方面也是不遗余力,对于一些工作3年的开发,稍微优秀一点的,都给到30K的Offer,当然,拼多多加班也是出名的,一周上6天班是常态,每天工作时间基本都是超过1 ...
- python 爬取豆瓣书籍信息
继爬取 猫眼电影TOP100榜单 之后,再来爬一下豆瓣的书籍信息(主要是书的信息,评分及占比,评论并未爬取).原创,转载请联系我. 需求:爬取豆瓣某类型标签下的所有书籍的详细信息及评分 语言:pyth ...
- UiPath之文件操作
今天给大家介绍一下,在UiPath中如何操作文件,比如需要在某个文件夹中自动创建一个当天日期的文本. 主要使用的activity有: l Assign l Path Exists l If l ...
- m102 SE赛
这次考试考完试正在刷提交记录的时候,到我这突然oj卡了一下,然后卡了大约10s,再刷出来就发现:
- 用python实现对元素的长截图
一.目标 浏览网页的时候,看见哪个元素,就能截取哪个元素当图片,不管那个元素有多长 二.所用工具和第三方库 python ,PIL,selenium pycharm 三.代码部分 长截图整体思路: 1 ...