python实现给定一个数和数组,求数组

发布时间:2019-05-13 21:33:21编辑:auto阅读(1941)

    给定一个整数数组和一个目标值,找出数组中和为目标值的两个数。你可以假设每个输入只对应一种答案,且同样的元素不能被重复利用。

    示例:
    给定 nums = [2, 7, 11, 15], target = 9
    因为 nums[0] + nums[1] = 2 + 7 = 9
    所以返回 [0, 1]

    代码实现:


    def twoSum(self, nums, target):
    nums_bak = nums.copy()
    nums.sort()
    i = 0
    j = 0
    for k in range(0, (len(nums) - 1)):
    if nums[k] + nums[k + 1] >= target:
    i = k
    j = k + 1
    break
    while i >= 0 and j < len(nums):
    if nums[i] + nums[j] < target:
    j += 1
    elif nums[i] + nums[j] > target:
    i -= 1
    else:
    if nums[i] == nums[j]:
    return [nums_bak.index(nums[i]), nums_bak.index(nums[j], i + 1)]
    else:
    return [nums_bak.index(nums[i]), nums_bak.index(nums[j])]

关键字