LeetCode-two sum:python解答数组问题

问题描述:给定一个数组和整型数字,找出数组中两个数加和为该整数的两个数的下标

输入:nums = [2, 7, 11, 15], target = 9,
Because nums[0] + nums[1] = 2 + 7 = 9,
输出:return [0, 1].

首先,使用python来解题。对于列表的处理,python内置函数显得很灵活,但运行效率上却不让人那么满意。


那么,这里就一起来回忆一下python中list数据类型的各种操作。


python中列表list可以存放各种数据类型(甚至包括你至今没想到的类型,哈哈),比如说整型,字符串,浮点数,类对象等。


初始化很简单:test=[ ]#这是定义了一个空列表,并且下标是从0开始的,最后一个竟然会是-1,-len第一个元 素,len-1最后一个元素,呵呵


创建连续的list: test= range(1,5)      #即 L=[1,2,3,4],不含最后一个元素


取列表的长度length=len(test)


添加数据时,可以分为在尾部添加数据:test.append(var)   #追加元素;


还可以在指定下标下添加元素:test.insert(index,var)#插入元素;


将一个列表追加到列表中去,test.extend(list)  #追加list,即合并list到test上,另外 对于两个列表的拼接可以直接使用加号:[1,2]+[3,4]=>[1,2,3,4]


删除列表中的数据:根据指定位置index删除 del test[index];


使用test.pop()删除最后一个元素,也可以使用test.pop(index)删除指定位置的元素


使用方法remove删除:test.remove(index)


使用切片删除:test=test[2:len(test)],这里删除了前两个元素。


对列表进行排序:test.sort() 还有倒序排列:test.reverse()


列表还可以获取某个元素在列表中出现的次数:test.count("winter")#搜索元素"winter"在列表中出现的次数。

再来看看python对列表的遍历方法:


1

for i in list:
    #todo some thing with list[i],但是这种方法有个缺陷就是获取不到该元素i在列表中的位置
2

for index in range(len(list)):
    process(list[index])#这里的index就是对应的列表中的位置
3 使用内置函数 enumerate

for index, item in enumerate(sequence):
    process(index, item)#这样使用键值对的形式,对列表进行遍历 index为下标位置,item为值

对于列表处理,我刚开始是使用的 for value in nums:的方式去完成的,结果肯定是提示超时了。

接着我使用的是第二种遍历方式,也是提示超时,使用第三种方式才AC,哎~ 效率可想而知了。

附代码:

class Solution(object):
    def twoSum(self, nums, target):
        for k1,v1 in enumerate(nums):
            for k2,v2 in enumerate(nums):
                if (v1+v2)==target and k2>k1:
                    return [k1,k2]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值