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)
  • 相关阅读:
    java 寒假作业
    java 搭积木
    java 移动距离
    java 垒骰子
    java 饮料换购
    java 牌型种数
    ONOS基础教程(QuickStart with a VM)
    Java中 VO、 PO、DO、DTO、 BO、 QO、DAO、POJO的概念
    PM2使用基本介绍
    nodejs项目部署
  • 原文地址:https://www.cnblogs.com/lux-ace/p/10546872.html
Copyright © 2011-2022 走看看