• 牛客网每日一练


    #
    # 
    # @param numbers int整型一维数组 
    # @param target int整型 
    # @return int整型一维数组
    #
    class Solution:
        def twoSum(self , numbers , target ):
            res = [0,0]#保存结果
            mp = {}#定义一个哈希表存储numbers[i]和对应的下标
            for i in range(len(numbers)):#进行标记
                mp[numbers[i]] = i
            for i in range(len(numbers)):
                 #每遍历一个numbers[i]就去对应的mp里找有没有target - numbers[i]
                 #如果有就返回结果
                 #如果没有就找下一个
                if target - numbers[i] in mp:
                    if mp[target - numbers[i]] != i:
                        res[0] = i + 1
                        res[1] = mp[target - numbers[i]]+1
                        return res
            return res
            # write code here
    给出一个整数数组,请在数组中找出两个加起来等于目标值的数,
    你给出的函数twoSum 需要返回这两个数字的下标(index1,index2),需要满足 index1 小于index2.。注意:下标是从1开始的
    假设给出的数组中只存在唯一解
    例如:

    给出的数组为 {20, 70, 110, 150},目标值为90
    输出 index1=1, index2=2

     
    解题思路:
    1.暴力遍历解法(不推荐)
    2.建立完哈希表在开始查找
    3.不一定非要建立完哈希表再开始查找,此题可以边建立边查找
      在此题中我用的第二种方法,因为我对哈希还不是能很好的熟练掌握,我还是一步一步来的。
  • 相关阅读:
    iterm2 关闭命令行的行数限制
    设置Mac关闭显示器后不睡眠
    设置iPhone内容隔空投送到mac
    Mac关闭动画效果
    mac使用Jmeter
    Mac 设置文件夹共享
    设置iPhone可以投屏到mac上
    Mac关闭显示亮度自动调节功能
    Mac系统无法使用root用户
    Mac设置主显示器
  • 原文地址:https://www.cnblogs.com/nenu/p/14662781.html
Copyright © 2020-2023  润新知