leetcode9 两数之和
作者:互联网
class Solution(object):
def twoSum(self, nums, target):
"""
:type nums: List[int]
:type target: int
:rtype: List[int]
"""
result=[]
for i in range(len(nums)):
for j in range(i+1, len(nums)): #第i个和第i个之后的数值进行求和对比
if(nums[i]+nums[j]==target ): #取消了i和j的对比
result.append(i)
result.append(j)
break
return result
2个for循环
这种算法一般都比较耗时间
class Solution:
def twoSum(self,nums,target):
"""
:param nums:
:param target:
:return:
"""
sort=sorted(range(len(nums)),key=lambda x:nums[x])#有点绕;获取nums
i=0
j=len(nums)-1
alist=[]
while(nums[sort[i]]+nums[sort[j]]!=target):
if(nums[sort[i]]+nums[sort[j]]>target): #当最大的元素和最小的元素相加大于目标值
j-=1 #最大元素前移一个位置
else: #小于目标值时
i+=1 #最小元素后移一个位置
alist.append(sort[i])
alist.append(sort[j])
return alist
显示智商的算法
参考链接
sorted用法
根据字符串的长度来排序
标签:sort,target,nums,append,leetcode9,len,result,两数 来源: https://blog.csdn.net/weixin_45492560/article/details/113801900