【leetcode】1两数之和

打开leetcode突然想用python写,然后开着菜鸟写python,百度很久还去贴吧求助半天,最后写了一段很丑的代码atom运行可以,leetcode运行一边报错一边出结果,说twosum参数给多了,就贴一下自己的学习一下大佬的吧。

class Solution(object):
    def twoSum(self,num,number,target):
        global flag
        flag=0
        if number>target :
            return
        if num+number==target :
            flag=1
            return number

nums = [2,7,11,15]
target = 9
flag=0
x=Solution()
for num in nums:
    for number in nums:
        if number == num:
            continue
        x.twoSum(num,number,target)
        if flag==1:
            print (nums.index(num),nums.index(number))
            break
    if flag==1:
        break

atom运行成功,不过仅此而已。

再说大佬的,作为小白真的是一边看一边搜那些函数都是啥。

原链接在这https://www.jianshu.com/p/461da897fe21

第一个,同样的暴力解法,但是短

def twoSum(self, nums, target):
    for i in range(len(nums)):
        for j in range(i + 1, len(nums)):
            if nums[i] + nums[j] == target:
                return [i, j]

所谓小白就是,别的语言写习惯了,点进去人家给了class,我扒着菜鸟现学也没想过放弃class,还试图属性方法之后调用,没想过直接一起……

而且没用上人家的输入,自己跟自己玩……

顺便,贴一个菜鸟关于range()函数的用法

然后就是一遍哈希,适用有限

def twoSum(self, nums, target):
    # 产生散列表
    hash_ = dict(zip(nums, range(len(nums))))
    # 反向寻找
    for i in range(len(nums)):
        other=target-nums[i]
        if hash_.get(other):
            return [i,hash_[other]]

用了字典,简而言之就是,字典的键是列表里的值,值是索引。然后只遍历一遍,到你了就算一下,你加x到target,然后利用哈希表的特性看看这个x的位置有没有东西,没有就不是,有就返回那个索引。

还是那句话,感觉适用有限。顺便贴个菜鸟的zip()

但是还有个类似的,在 https://blog.csdn.net/zjn295771349/article/details/86572602

class Solution:
    def twoSum(self, nums, target):
        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  

贴一下原博的解释,已经很清楚了

于是官解还有个两遍哈希,链接在https://leetcode-cn.com/problems/two-sum/solution/xiao-bai-pythonji-chong-jie-fa-by-lao-la-rou-yue-j/

def twoSum(nums, target): 
    hashmap={} 
    for ind,num in enumerate(nums): 
        hashmap[num] = ind 
    for i,num in enumerate(nums): 
        j = hashmap.get(target - num) 
        if j is not None and i!=j:
            return [i,j]

今日份的面向复制粘贴编程结束╮(╯▽╰)╭

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Github下载地址:https://github.com/XLAccount/MiaoBo 项目详解地址:http://www.code4app.com/blog-843201-350.html 快速集成RTMP的视频推流教程:http://www.code4app.com/blog-843201-315.html ffmpeg常用命令操作:http://www.code4app.com/blog-843201-326.html #关于IJKMediaFramework/IJKMediaFramework.h找不到的问题,下载后直接拉到项目中即可 下载地址:https://pan.baidu.com/s/1boPOomN 密码::9yd8 #BUG修复: 解决登录程序偶尔崩溃,修复轮播图片和页面控制器叠加等问题,修复新浪授权登录 (2016.9.7) 解决程序运行中偶尔崩溃问题,解决连续下拉刷新崩溃问题,优化代码 (2016.9.8) 优化直播页面,减少不必要的性能消耗,增加用户体验 (2016.9.11) 适配5s以上的机型除了6sPlus和6Plus延迟较大外,其余延迟都较小,网速好的话可以忽略不计 (2016.9.12) 新版本极大优化程序性能,修复关注数据异常等小问题,重新布局热门页面,减少因反复加载带来的性能消耗 (2016.9.13) 增加个人中心页面,采用下拉放大图片 ➕ 波纹效果 (2016.9.14) ![image text](https://github.com/XLAccount/ALLGIFS/blob/master/psb.gif) 展示图片 ![image](https://github.com/XLAccount/ALLGIFS/blob/master/psb-1.gif) 展示图片 ![image text](https://github.com/XLAccount/ALLGIFS/blob/master/psb-2.gif) 展示图片 ![image text](https://github.com/XLAccount/ALLGIFS/blob/master/psb-3.gif) 展示图片 感谢大神Monkey_ALin http://www.jianshu.com/users/9723687edfb5/latest_articles 的demo支持

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值