1. 程式人生 > >Leetcode[1]Two Sum Python

Leetcode[1]Two Sum Python

Two Sum

  Go to Discuss

Given an array of integers, return indices of the two numbers such that they add up to a specific target.

You may assume that each input would have exactly one solution, and you may not use the same element twice.

Example:

Given nums = [2, 7, 11, 15], target = 9,

Because nums[0
] + nums[1] = 2 + 7 = 9, return [0, 1].

Answer:

class Solution(object):     def twoSum(self, nums, target):         """         :type nums: List[int]         :type target: int         :rtype: List[int]         """         sort_index = self.BubbleSort(nums)         low = 0         high = len(nums)-1         res = []

        while low < high:             if nums[low] + nums[high] > target:                 high -= 1             elif nums[low] + nums[high] < target:                 low += 1             else:                 res.append(sort_index[low])                 res.append(sort_index[high])                 low += 1                 high -= 1         final_res = list(set(res))         return final_res

    def BubbleSort(self, nums):         if nums:             nums_len = len(nums)             org_index = [i for i in range(nums_len)]             for i in range(nums_len - 1):                 for j in range(nums_len - i - 1):                     if nums[j] > nums[j + 1]:                         nums[j], nums[j + 1] = nums[j + 1], nums[j]                         org_index[j], org_index[j + 1] = org_index[j + 1], org_index[j]             return org_index