1.两数之和-Python-LeetCode

1.两数之和-Python-LeetCode刚开始接触算法方面,好多都不懂,打算每刷一题就整理一下题目:给定一个整数数列,找出其中和为特定值的那两个数。你可以假设每个输入都只会有一种答案,同样的元素不能被重用。示例:给定nums=[2,7,11,15],target=9因为nums[0]+nums[1]=2+7=9所以返回[0,1]解法一:.刚开始看到的的时候,第一个想到的就是用一个嵌套循环把n…

大家好,又见面了,我是你们的朋友全栈君。

刚开始接触算法方面,好多都不懂,打算每刷一题就整理一下

题目:

给定一个整数数列,找出其中和为特定值的那两个数。

你可以假设每个输入都只会有一种答案,同样的元素不能被重用。

示例:

给定 nums = [2, 7, 11, 15], target = 9

因为 nums[0] + nums[1] = 2 + 7 = 9
所以返回 [0, 1]

解法一:.刚开始看到的的时候,第一个想到的就是用一个嵌套循环把nums列表遍历两次,虽然测试通过了但是耗时实在太长了,然后就考虑了其他时间复杂度低的方法

代码如下:

class Solution:
    def twoSum(self,nums, target):
        """
        :type nums: List[int]
        :type target: int
        :rtype: List[int]
        """
        #用len()方法取得nums列表的长度
        n = len(nums)
        #x取值从0一直到n(不包括n)
        for x in range(n):
            #y取值从x+1一直到n(不包括n)
            #用x+1是减少不必要的循环,y的取值肯定是比x大
            for y in range(x+1,n):
                #假如 target-nums[x]的某个值存在于nums中
                if nums[y] == target - nums[x]:
                    #返回x和y
                    return x,y
                    break
                else:
                    continue

1.两数之和-Python-LeetCode

解法二:用一个for循环,直接在里面查询target-nums[x]是否存在于nums列表中,速度比解法一快了许多,但还是不够

代码如下:

class Solution:
    def twoSum(self,nums, target):
        """
        :type nums: List[int]
        :type target: int
        :rtype: List[int]
        """
        #用len()方法取得nums列表长度
        n = len(nums)
        #x从0到n取值(不包括n)
        for x in range(n):
            a = target - nums[x]
            #用in关键字查询nums列表中是否有a
            if a in nums:
                #用index函数取得a的值在nums列表中的索引
                y = nums.index(a)
                #假如x=y,那么就跳过,否则返回x,y
                if x == y:
                    continue
                else:
                    return x,y
                    break
            else :
                continue

1.两数之和-Python-LeetCode

解法三:这个解法是我看了排名前几个的答案后才知道的, 先创建一个空字典,然后依次把target-nums[x]的值存入字典,存入一个就跟nums[x+1]去比较, 字典中的key为target-nums[x],value为x,也就是nums[x]在nums列表中的索引位置。当字典d中有nums[x+1]时,也就是target – nums[y] = nums[x+1] , y肯定是小于x+1的(因为y是x+1之前循环过的数字)

所以是 return y,x+1

class Solution:
    def twoSum(self,nums, target):
        """
        :type nums: List[int]
        :type target: int
        :rtype: List[int]
        """
        #用len()方法取得nums列表长度
        n = len(nums)
        #创建一个空字典
        d = {}
        for x in range(n):
            a = target - nums[x]
            #字典d中存在nums[x]时
            if nums[x] in d:
                return d[nums[x]],x
            #否则往字典增加键/值对
            else:
                d[a] = x
        #边往字典增加键/值对,边与nums[x]进行对比

        
                    
                    

1.两数之和-Python-LeetCode

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/133633.html原文链接:https://javaforall.net

(0)
上一篇 2022年6月8日 上午8:00
下一篇 2022年6月8日 上午8:00


相关推荐

  • 移动端开发流程[通俗易懂]

    移动端开发流程[通俗易懂]一、确定项目技术栈vue2.0+vue-cli3/4+vue-router+axios+vuex+vant+rem+sass+webpack二、搭建推荐使用yarnyarn,npm(cnpm)包管理工具yarnaddaxios-Scnpminstallaxios-S-S:–save-dev生产环境的依赖(dependencies)-D:–dev开发环境的依赖(devDependencies)从0开始搭建首先我们要创建一

    2022年6月24日
    29
  • input file读取文件

    input file读取文件js读取inputfile文件的两种方式:<divid="localImag"><imgid="preview"src=""width="150"height="180"style="display:block;width:150px;height:180px;"><

    2022年7月17日
    15
  • HTML4.01规范中英文对照-有关SGML和HTML的一些事(1)

    HTML4.01规范中英文对照-有关SGML和HTML的一些事(1)

    2021年8月11日
    240
  • 【读书】领导力的5个层次-职位

    【读书】领导力的5个层次-职位领导力的 5 个层次 职位 你已经踏上了培养领导力的征程一 前言传统意义上的领导力征途都是从领导职位开始的 职位是领导力提升之旅的起点 也是领导力建立与发展的最低层次与牢固基石 真正的影响为必须以此为基础 二 职位的积极方面 1 领导职位被赋予某些人往往是因为他们具有领导潜质大多数时候人们能够获得某个

    2026年3月19日
    2
  • QTreeWidget 遍历所有子节点(QTreeWidgetItem)[通俗易懂]

    QTreeWidget 遍历所有子节点(QTreeWidgetItem)[通俗易懂]这恐怕是最简单的写法了,逛论坛发现的,亲测好用//ui文件中定义//QTreeWidget*treeWidget;//…//遍历treeWidgetQTreeWidgetItemIteratorit(ui.treeWidget);while(*it){//dosomethinglike…

    2026年4月20日
    4
  • Exhibitor的权限配置

    Exhibitor的权限配置根据 github 上面的提示信息 要配置权限 我们如果以 StandAlone 的方式启动 Exhibitor 那么我们需要配置 web xml nbsp nbsp nbsp nbsp nbsp nbsp nbsp xmlns xsi http www w3 org 2001 XMLSchema instance nbsp nbsp nbsp nbsp nbsp nbsp nbsp xsi schemaLocati http java sun com xml ns javaee

    2026年3月19日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号