各位大神好,小弟在利扣上看到一道練習題,題目要求是:
【給定一個整數陣列 nums 和一個目標值 target,請你在該陣列中找出和為目標值的那 兩個 整數,并回傳他們的陣列下標。
你可以假設每種輸入只會對應一個答案。但是,你不能重復利用這個陣列中同樣的元素。
示例:
給定 nums = [2, 7, 11, 15], target = 9
因為 nums[0] + nums[1] = 2 + 7 = 9
所以回傳 [0, 1]
來源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/two-sum
著作權歸領扣網路所有。商業轉載請聯系官方授權,非商業轉載請注明出處。】
我寫的代碼是:
class Solution(object):
def twoSum(self, nums, target=9):
self.nums = [2,7,11,15]
self.nums = nums
ans = []
for i in nums[:]:
for j in nums[i+1:]:
z = i+j
if z == 9 :
ans.append(len(nums[i]))
ans.append(len(nums[j]))
break
else:
i +=1
j +=1
print(ans)
運行結果就只有一個空的串列,不知道是哪里出了問題,還請各位大神指教!

uj5u.com熱心網友回復:
為啥要用類呢。你的代碼很多問題,if的縮進有問題,應該for回圈里面;找到符合的值之后,break跳出回圈了;for回圈里面,不用指標+=1這樣的操作,會自動回圈……等,重新寫吧,寫個函式就行。
uj5u.com熱心網友回復:
可以這樣寫
def twoSum(nums, target=9):
for i in range(len(nums)):
for j in range(1, len(nums)):
if nums[i] + nums[j] == target:
return [i, j]
return 0
nums = [2, 7, 11, 15]
print(twoSum(nums))
uj5u.com熱心網友回復:
謝謝大神,話說我拿著這個找我助教都沒能解決,這個寫發簡潔明了,另外我想問問代碼是怎么插入到帖子里面的呢?
uj5u.com熱心網友回復:
牛逼uj5u.com熱心網友回復:
回復框上面,表情選項左邊,可以插入代碼轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/122778.html
上一篇:純小白 求教,應該怎么解決
