✨✨欢迎订阅本专栏或者关注我,大家一起努力每天一题算法题✨✨ ❤️❤️❤️ 最后,希望我的这篇文章能对你的有所帮助! 愿自己还有你在未来的日子,保持学习,保持进步,保持热爱,奔赴山海! ❤️❤️❤️
今天算法题:
给定一个路数数组nums和一个整数目标值target, 请你在该数组中找出和为目标值target 的那两个整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一.个元素在答案里不能正复出现。你可以按任意顺序返回答案。
示例:
上代码:
nums=[7,12,9,27]
target=39
for i,k in enumerate(nums):
for index,kk in enumerate(range(i+1,len(nums))):
# print(nums[kk])
if nums[i]+nums[kk]==target:
print("[%d,%d]"%(i,kk))
读代码 第一层循环确定第一个数 7[0],range(0+1,4)也就是range(1,4) 即1,2,3 通过遍历相加每个数对比目标traget 是否相等返回两个数下标即可
输出:
以上算法可以优化:
首次写都有不足,会补上优化算法
占位
学到的新知识: 通过遍历使每一个数都能与所有的数进行相加,对比traget如果相等返回两个数下标
range(start, stop[, step]) start: 计数从 start 开始。默认是从 0 开始。 例如range(5)等价于range(0, 5); stop: 计数到 stop 结束,但不包括 stop。 例如:range(0, 5) 是[0, 1, 2, 3, 4]没有5 step:步长,默认为1。例如:range(0, 5)等价于 range(0, 5, 1)
enumerate(sequence, [start=0]) sequence – 一个序列、迭代器或其他支持迭代对象。 start – 下标起始位置。