LintCode 56 两数之和(sum of two number)

描述
给一个整数数组,找到两个数使得他们的和等于一个给定的数 target。

你需要实现的函数twoSum需要返回这两个数的下标, 并且第一个下标小于第二个下标。注意这里下标的范围是 0 到 n-1。

样例
Example1:
给出 numbers = [2, 7, 11, 15], target = 9, 返回 [0, 1].
Example2:
给出 numbers = [15, 2, 7, 11], target = 9, 返回 [1, 2].
挑战
给自己加点挑战

O(n)O(n) 空间复杂度,O(nlogn)O(nlogn) 时间复杂度,
O(n)O(n) 空间复杂度,O(n)O(n) 时间复杂度,

# 您的提交打败了 85.40% 的提交!
class Solution:
    """
    @param numbers: An array of Integer
    @param target: target = numbers[index1] + numbers[index2]
    @return: [index1 + 1, index2 + 1] (index1 < index2)
    """
    @staticmethod
    def twoSum(self, numbers, target):
        # write your code here
        for i in numbers:
            for j in numbers:
                if i + j == target:
                    if numbers.index(i) < numbers.index(j, numbers.index(i) + 1, len(numbers)):
                        return numbers.index(i), numbers.index(j, numbers.index(i) + 1, len(numbers))


# debug
# main = Solution()
# print(main.twoSum([2, 7, 11, 15], 9))

猜你喜欢

转载自blog.csdn.net/u011699626/article/details/107963268