zoukankan      html  css  js  c++  java
  • 牛渴望每日一练

    #
    # 
    # @param num int整型一维数组 
    # @param target int整型 
    # @return int整型
    #
    class Solution:
        def threeSumClosest(self , num , target ):
            # write code here
            num.sort()
            left=0
            right=len(num)-1
            mid = (left+right)//2
            while left<mid and mid<right:
                res=num[left]+num[right]+num[mid]
                if res==target:
                    return res
                if res<target:
                    if left<mid-1:
                        left+=1
                    else:
                        mid+=1
                else:
                    if right>mid+1:
                        right-=1
                    else:
                        mid-=1
            return res        

    题目描述

    给出含有n个整数的数组s,找出s中和加起来的和最接近给定的目标值的三个整数。返回这三个整数的和。你可以假设每个输入都只有唯一解。   例如,给定的整数 S = {-10 20 10 -40}, 目标值 = 10.
       最接近目标值的和为 2. (-10 + 20 + 10 = 20).

    题解:此题我没有想出太好的办法,我的方法就是先排序后双向遍历,当左右指针都小于mid时我们开始进入循环,如果此时三值相加后是小于目标值,那么意味着我们需要向右移动,如何向右移动就要看下边的判断语句
      如果left与mid中间隔有空隙那么让left向右移动一个位置,如果挨着那么让mid向右移动一个单位,下面同理。
      
  • 相关阅读:
    Android 禁止软键盘自动弹出
    Android之Adapter用法总结
    如何成为android高手
    最强大的文案策略
    外贸电商的ERP有很多
    ERP行业销售如何挖掘潜在客户?
    新制造
    C#实现字符串相似度算法
    cmd
    对于大型公司项目平台选择j2ee的几层认识
  • 原文地址:https://www.cnblogs.com/nenu/p/14693507.html
Copyright © 2011-2022 走看看