美文网首页
LeetCode 1. Two Sum

LeetCode 1. Two Sum

作者: 费城的二鹏 | 来源:发表于2018-11-14 13:51 被阅读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"]])

相关文章

网友评论

      本文标题:LeetCode 1. Two Sum

      本文链接:https://www.haomeiwen.com/subject/spxjfqtx.html