刷力扣热题–第三天:1. 两数之和
菜鸟第三天开始奋战敲代码,持之以恒,见证成长
1.题目简介
2.题目解答
因为这是道简单题,就不用最粗暴的方式了,题目主要的目的还是想要从数组中找到一组和为target的数组下标,那就是说一个数要与除他以外所有数求和再验证,所以至少也得遍历一下整个数组,现在想的是能否先让数组有序,之后再去进行求和,python的话很好实现,结果如下 (时间复杂度O(n2) 空间复杂度O(n))
过是过了,但是感觉结果不得劲,在修改一下:
想了蛮久但还是时间还是没下降,不钻牛角尖,多刷点再来进阶。
3.心得体会
今天是道简单题,第一遍挺好做的,但是想要提升质量我还是没能想起来,路漫漫~
代码在这:
class Solution(object):
def twoSum(self, nums, target):
"""
:type nums: List[int]
:type target: int
:rtype: List[int]
"""
start = -1
end = -1
ori_nums = [i for i in nums]
nums.sort()
for i in range(len(nums)):
for j in range(i + 1, len(nums)):
if nums[i] + nums[j] == target:
start = nums[i]
end = nums[j]
else:
continue
star = 0
if start == end:
for i in range(len(nums)):
if ori_nums[i] == start and star == 0:
star = 1
elif ori_nums[i] == start and star == 1:
return [ori_nums.index(start), i]
return [ori_nums.index(start), ori_nums.index(end)]
4.写作时长
2024-7-4-19:40 == 2024-7-4-20:10 正式做题半小时,之后又钻了五十分钟牛角尖~