文章目录:

  •  题目
  • 脚本一及注释
    • 脚本逻辑
  • 脚本二及注释
    • 脚本逻辑  

题目:

给定一个整数数组 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)                   #调用类中的方法,由于此方法会返回值,所以将值打印出来即可

【处理逻辑】

  1. 此脚本处理逻辑是生成一个新的数据记录处即字典,用于存储已经遍历的列表元素的索引号及元素值
  2. 由于列表遍历过程中是与字典进行遍历的,所以字典的键值是不会重复的
  3. 通俗来讲就是:一开始桶子是空的,不断拿数据与桶子里的数据进行比对,如果没有找到比对目标的值会放到桶子里,然后进行下一次的比对

脚本二及步骤注释

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) #返回两数的索引号

脚本逻辑

  1. 此脚本是使用逼近的思想,通俗来讲就是:用第一个数与列表中其余的值进行求和,查看是否与目标值一致
  2. 若一致,则求出两值得索引号即可
  3. 若不一致,丢弃第一个值,使用第二个值与剩余得值进行比较(不包括第一个值),直到遍历所有值或者遇到合适值为止

Leetcode_01【两数之和】的更多相关文章

  1. 给定数组A,大小为n,现给定数X,判断A中是否存在两数之和等于X

    题目:给定数组A,大小为n,现给定数X,判断A中是否存在两数之和等于X 思路一: 1,先采用归并排序对这个数组排序, 2,然后寻找相邻<k,i>的两数之和sum,找到恰好sum>x的 ...

  2. LeetCode 170. Two Sum III - Data structure design (两数之和之三 - 数据结构设计)$

    Design and implement a TwoSum class. It should support the following operations: add and find. add - ...

  3. 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 ...

  4. 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 ...

  5. [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 ...

  6. [LeetCode] 1. Two Sum 两数之和

    Part 1. 题目描述 (easy) Given an array of integers, return indices of the two numbers such that they add ...

  7. Leetcode(一)两数之和

    1.两数之和 题目要求: 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个整数,并返回他们的数组下标. 你可以假设每种输入只会对应一个答案.但是,你不能重 ...

  8. 南大算法设计与分析课程OJ答案代码(1)中位数附近2k+1个数、任意两数之和是否等于给定数

    问题1 用来测试的,就不说了 问题2:中位数附近2k+1个数 给出一串整型数 a1,a2,...,an 以及一个较小的常数 k,找出这串数的中位数 m 和最接近 m 的小于等于 m 的 k 个数,以及 ...

  9. 两数之和,两数相加(leetcode)

    我们都知道算法是程序员成长重要的一环,怎么才能提高算法呢, 出来在网上看视频之外,动手练习是非常重要的.leetcode 就是一个非常好的锻炼平台. 1. 两数之和,在 leetcode 里面是属于 ...

  10. leetcode刷题--两数之和(简单)

    一.序言 第一次刷leetcode的题,之前从来没有刷题然后去面试的概念,直到临近秋招,或许是秋招结束的时候才有这个意识,原来面试是需要刷题的,面试问的问题都是千篇一律的,只要刷够了题就差不多了,当然 ...

随机推荐

  1. 初学android小笔记(一)

    一:应用外观基础设置 (1)去掉标题栏:打开Android Manifest文件,将theme如下设置 (2)改应用图标:将icon指定图片改为想要的app图标即可 (3)改应用名字: 在Manife ...

  2. 百度地图Javascript API 调用示例

    调用示例 !<!DOCTYPE html> <html> <head> <title>百度地图DEMO</title> </head& ...

  3. Hive基本介绍

    4.1 基本介绍: Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供完整的sql查询功能,可以将sql语句转换为MapReduce任务进行运行.其优点是学 ...

  4. SQL 中更新一个表的数据是从另外的表(或者自己本身的表)查询出来的

    模板1: update 表1 set  表1.字段1 = ( select 表1字段或者表2字段 from  表2 where  表1主键 = 表2外键 及其他条件 )  where 表1.字段 = ...

  5. python items和setdefault函数

    items() dict = {'runoob': '菜鸟教程', 'google': 'Google 搜索'} print("Value : %s" % dict.setdefa ...

  6. Codeforces 1183F - Topforces Strikes Back

    Div. 3的题,竟然卡了好久,自闭.jpg 好像我的思路不太一样呢QAQ 首先注意到,如果一个数是另一个的因子,那它肯定不会出现在答案中. 我们先把所有数排序,然后对每个数,我们要往前再找两个数(或 ...

  7. [考试反思]0919csp-s模拟测试47:苦难

    ISOLATION 也不粘上面的了,先管好自己. 附了个近期总分,可以看出什么. 反思一下考试心态: 开场看题目,T1傻逼题不用脑子,T2傻逼板子,T3... 这T3是啥啊?没看懂题目啊?再看一遍.啥 ...

  8. python学习之【第十二篇】:Python中的迭代器

    1.为何要有迭代器? 对于序列类型:字符串.列表.元组,我们可以使用索引的方式迭代取出其包含的元素.但对于字典.集合.文件等类型是没有索引的,若还想取出其内部包含的元素,则必须找出一种不依赖于索引的迭 ...

  9. 大数据之路week01--day02我实在时被继承super这些东西搞的头疼,今天来好好整理以下。

    这一周的第一天的内容是面向对象的封装,以及对方法的调用.实在时没法单独拿出来单说,就结合这一节一起说了. 我实在是被继承中的super用法给弄的有点晕,程序总是不能按照我想的那样,不是说结果,而是实现 ...

  10. JavaScript with Image:创建缩略图

    当图片很大,直接把图片从Server下载到浏览器上看是一种很不明智的做法,浪费了服务器的资源,网络带宽和客户端的资源.所以,通常Server和Client之间会传输缩略图,只有当Client请求某张图 ...