zoukankan      html  css  js  c++  java
  • 初入leetcode ————两数之和

     1 import time
     2 
     3 #方法一:
     4 class Solution:
     5     def twoSum(self, nums, target):
     6         for i in range(len(nums)):  #第一次循环列表
     7             for j in range(i+1,len(nums)): #第二次循环列表应该把第一次循环的那个数字排除在外
    10                 if nums[i] +nums[j] == target:
    11                     return j,i
    12                 else:
    13                     continue
    14 
    15 #方法二:
    16 class Solution:
    17     def twoSum(self, nums, target):
    18         for i in range(len(nums)):
    19             if target -nums[i] in nums and i !=nums.index(target -nums[i]):   #如果差值在列表中且不是同一个元素,就返回两个元素的索引
    20                 return [i,nums.index(target -nums[i])]
    21             else:
    22                 continue
    23 
    24 #方法三
    25 class Solution:
    26     def twoSum(self, nums, target):
    27         dic = {}
    28         for i,num in enumerate(nums):  #先把列表所有的元素按照索引为值,数字为键的方式放入字典中。
    29             dic[num] = i
    30         for i,num in enumerate(nums):
    31             j = dic[target-num]           #以差值为键,在字典中查找有没有对应的值。
    32             if i!=j and j is not None:   
    33                 return [i,j]
    34 
    35 t1 = time.perf_counter()
    36 solution = Solution()
    37 a = solution.twoSum([2,7,11,15,2,6,98,23], 13)
    38 t2 = time.perf_counter()
    39 print(a)
    40 print(t2-t1)

    方法一是最常规的思维,就是嵌套循环,不断变量列表。方法二,用了一个循环,查看目标值减每次循环的值是否在列表中。方法三用了字典,提高了效率

    --------------------成功,肯定是需要一点一滴积累的--------------------
  • 相关阅读:
    Guns 01 项目基本运行
    个人 比较好用的软件
    个人 软件开发 综合技能提升
    开源框架 综合知识
    开源框架 工作流框架
    开源框架 Java 开发框架 1
    开源框架 Java 管理系统
    开源框架 C#
    scp(安全拷贝)和rsync(增量复制)
    完全分布式集群的准备工作
  • 原文地址:https://www.cnblogs.com/GouQ/p/12615827.html
Copyright © 2011-2022 走看看