前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python学习:关于Two Sum问题的一些记录

Python学习:关于Two Sum问题的一些记录

作者头像
烤粽子
发布2021-07-07 19:18:48
4610
发布2021-07-07 19:18:48
举报

题目:

代码语言:javascript
复制
'''
Given an array of integers, return indices of the two numbers such that they add up to a specific target.

You may assume that each input would have exactly one solution, and you may not use the same element twice.'''

1. 最开始的写法:

代码语言:javascript
复制
class Solution:
    def twoSum(self, nums, target):
        """
        :type nums: List[int]
        :type target: int
        :rtype: List[int]
        """
        if len(nums) <1 :
            return false
        for i in range(len(nums)):
            temp=target-nums[i]
            if temp in nums.index
            while j

大部分例子都能通过,有一个出现了如下图所示的提示:

2. 利用index改写为:

代码语言:javascript
复制
class Solution:
    def twoSum(self, nums, target):       
        if len(nums) <1 :
            return false
        for i in range(len(nums)):
            temp=target-nums[i]
            if temp in nums:
                if i!=nums.index(temp):
                    return i,nums.index(temp)

3. 利用enumerate()来改写:

代码语言:javascript
复制
class Solution:
def twoSum(self, num, target):
    d = dict()
    for index, number in enumerate(num):
        try:
            return ((d[target-number]+1, index+1))
        except:
            d[number] = index

看到有加了try的,感觉这样很好,借鉴一下。

代码语言:javascript
复制
enumerate(sequence, [start=0])
  • sequence,序列或迭代对象等
  • start 下标起始位置
  • 返回值:返回枚举对象,
代码语言:javascript
复制
>>> sq=['one','two','three']
>>> for index,element in enumerate(sq):
	print(index,sq[index])


	
0 one
1 two
2 three
>>> 

4. 

代码语言:javascript
复制
class Solution:
    # @return a tuple, (index1, index2)
    # 8:42
    def twoSum(self, num, target):
        map = {}
        for i in range(len(num)):
            if num[i] not in map:
                map[target - num[i]] = i + 1
            else:
                return map[num[i]], i + 1

        return -1, -1
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018-05-09 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档