LeetCode 1. Two Sum

2018-11-14  本文已影响4人  费城的二鹏

给一组数,和一个值,求两个值之和等于目标值的索引

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"]])
上一篇 下一篇

猜你喜欢

热点阅读