zoukankan      html  css  js  c++  java
  • 算法1----两数之和

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

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

    示例:

    给定 nums = [2, 7, 11, 15], target = 9
    
    因为 nums[0] + nums[1] = 2 + 7 = 9
    所以返回 [0, 1]
    
    我的代码:(时间复杂度为n2),两个循环判断当前值与列表之后的值是否相等。
    def twoSum(self,nums, target):
            index=0
            while index<len(nums):      
                i=index+1
                while i<len(nums):
                    temp=target-nums[index]
                    if temp==nums[i]:
                        return [index,i]
                    else:
                        i+=1
                index+=1
    

     别人的代码:(时间复杂度为n)   用字典的key,value来存储两个值,其中key用来存储nums的值,value用来存储nums的索引。

    def twoSum(nums,target):
        dic={}
        for i,j in enumerate(nums):
            if target-j in dic:
               return [dic[target-j],i]
            else:
                dic[j]=i
  • 相关阅读:
    NFS服务
    SSH服务
    DNS服务器
    FTP服务器
    linux(磁盘配额)
    linux(ACL权限控制)
    linux(日志)
    linux(系统安全)
    linux(进程和计划任务)
    linux(引导)
  • 原文地址:https://www.cnblogs.com/Lee-yl/p/8809017.html
Copyright © 2011-2022 走看看