https://leetcode.com/problems/two-sum/

https://leetcode.com/problems/two-sum/

寻找两个数的和是target

其实这道题可以遍历全部list 但是效率特别低 很容易超时 

所以我的方法是将数组排序固定其中一个 另一个二分查找

有一个niddle 是为了判定 当找到刚好合适的值的时候 niddle=0 

由于假设了只有一组解  就不必继续执行while了 

要注意的是二分查找用j=(x+length)/2.0 j为float 

当j作为index时 要转成int  

最后去原数组(未排序)找两个数的index

class Solution:
    # @param {integer[]} nums
    # @param {integer} target
    # @return {integer[]}
    def twoSum(self, nums, target):
        sorted=[]
        for i in nums:
            sorted.append(i)
        sorted.sort()
        length=len(nums)
        m=0
        n=0
        niddle=1
        index=[]
        for i in range(length):
            x=i
            findx=target-sorted[x]
            j=(x+length)/2.0
            while int(j)!=x and niddle==1:
                if sorted[int(j)]>findx:
                    x=x
                    length=j
                    j=(x+length)/2.0
                elif sorted[int(j)]


你可能感兴趣的:(leetcode)