给一组数,和一个值,求两个值之和等于目标值的索引
class Solution:
def twoSum(self, nums, target):
"""
:type nums: List[int]
:type target: int
:rtype: List[int]
"""
# left = 0
# right = len(nums) - 1
# while left < right :
# sum = nums[left] + nums[right]
# if sum < target:
# left = left + 1
# elif sum > target:
# right = right - 1
# elif sum == target:
# break
# if left < right:
# return [left, right]
# for i in range(len(nums)):
# for j in range(i + 1, len(nums)):
# if (target == nums[i] + nums[j]):
# return [i, j]
array = []
for index in range(len(nums)):
array.append({"key": index, "value": nums[index]})
print(array)
array = sorted(array, key=lambda num: num["value"])
print(array)
left = 0
right = len(array) - 1
while left < right :
sum = array[left]["value"] + array[right]["value"]
if sum < target:
left = left + 1
elif sum > target:
right = right - 1
elif sum == target:
break
if left < right:
return sorted([array[left]["key"], array[right]["key"]])
网友评论