zoukankan      html  css  js  c++  java
  • leetcode_1

    1. 两数之和
    给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。

    你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。


    暴力破解:

    哈希表思路:

    参考大佬的回答
    Python中没有指针,所以创建一个字典,用于存放数组的下标和值:
    思路:
    先将数组的值存放进字典,再进行值得比对,再返回符合的值得下标,需要两次循环时间复杂度为O(n2),空间复杂度为O(1);
    思路改进:
    边存边找,只需要进行一次循环时间复杂度为O(n),空间复杂度为O(1)。
    代码:
    class Solution:
        def twoSum(self, nums: List[int], target: int) -> List[int]:
            dic = {}
            for key, value in enumerate(nums):
                if target-value in dic:
                    return [dic[target-value], key]
                dic[value] = key

  • 相关阅读:
    day 06小结
    day 05小结
    day 05作业
    day 04作业
    day 03作业
    今日小结
    day 02小结
    hdu 4608 I-number(13多校#1 ,1009)
    zoj 2316 Matrix Multiplication(D)
    zoj 2316 Matrix Multiplication(2-D)
  • 原文地址:https://www.cnblogs.com/wj99/p/13723932.html
Copyright © 2011-2022 走看看