zoukankan      html  css  js  c++  java
  • 数组_leetcode167

    #coding=utf-8
    # 解题思路: 关键点:二分查找 20190302 找工作期间

    class Solution(object):
    def twoSum(self, numbers, target):
    """
    :type numbers: List[int]
    :type target: int
    :rtype: List[int]
    """
    if not numbers:
    return

    start = 0
    end = len(numbers)-1

    for i in range(len(numbers)):
    j = self.binarySearch(numbers,start,end ,target-numbers[i])

    if i != j and j != -1:
    if i < j:
    return [i+1,j+1]
    else:
    return []
    pass


    def binarySearch(self,alist,start,end,target ):

    if start > end :
    return -1
    while(start <= end):
    mid = start + (end-start)/2
    if alist[mid] == target:
    return mid
    elif target > alist[mid]:
    start = mid + 1
    else:
    end = mid -1



    return -1



    class Solution2(object):
    def twoSum(self, numbers, target):
    """
    :type numbers: List[int]
    :type target: int
    :rtype: List[int]
    """
    if not numbers:
    return

    start = 0
    end = len(numbers)-1

    while start < end :

    if numbers[start] + numbers[end] == target:
    return [start+1,end+1]

    elif numbers[start] + numbers[end] > target:
    end -= 1

    else:
    start += 1





    numbers = [2, 7, 11, 15]
    target = 9

    s = Solution2()

    print s.twoSum(numbers,9)
  • 相关阅读:
    拦截器
    Ajax
    JSON
    数据处理及跳转
    RestFul和控制器
    第一个MVC程序
    什么是SpringMVC
    回顾MVC
    声明式事务
    微软最强 Python 自动化工具开源了!不用写一行代码!
  • 原文地址:https://www.cnblogs.com/lux-ace/p/10546872.html
Copyright © 2011-2022 走看看