最近的三分钟热度:美好的年纪,美好的青春年华。要么得个漂浪脸蛋,要么得个精湛技术。
定下小目标:五点半下班,在餐厅吃晚餐,走跑回来,七点坐电脑前,刷一道leetcode,从简单开始。
第一天:
题目:1. 两数之和
给定一个整数数组和一个目标值,找出数组中和为目标值的两个数。
你可以假设每个输入只对应一种答案,且同样的元素不能被重复利用。
示例:
给定 nums = [2, 7, 11, 15], target = 9 因为 nums[0] + nums[1] = 2 + 7 = 9 所以返回 [0, 1]
我的解答:
class Solution(object):
def twoSum(self, nums, target):
"""
:type nums: List[int]
:type target: int
:rtype: List[int]
"""
minus = map(lambda x:target-x,nums) //得到数组 目标数-数组中每个值
for item,i in enumerate(minus):
if i in nums:
temp = target-i
if i==temp and nums.count(i)>1: //target=target/2+target/2
//第二个加数的位置一定在第一个加数后面,用切片直接从第一个加数后面找第二个加数,更快
return [item,minus[item+1:].index(temp)+item+1]
elif i==temp: //target/2 在数组中只有一个
continue
else:
return [item,minus[item+1:].index(temp)+item+1]
时间:
不知道为什么...
第一天over,今天听了一天王心凌的爱你,很开心