zoukankan      html  css  js  c++  java
  • [leetcode]16-最接近的三数之和

    1. 题目描述

    给定一个包括 n 个整数的数组 nums 和 一个目标值 target。找出 nums 中的三个整数,使得它们的和与 target 最接近。返回这三个数的和。假定每组输入只存在唯一答案。

    Input: nums = [-1,2,1,-4], 和 target = 1.

    Output: 最接近的三数之和是2

    2.思路

    1.双指针法
    先对目标数组进行排序,假设最开始第一个,第二个,最后一个元素之和sum最接近目标值target。如果sum=target,直接返回sum(很明显,这一定是最接近的);如果sum>target,则最后一个元素要向前推;
    如果sum<target,则第二个元素要向后推。逐渐更新sum,直到循环结束。(表诉得不是很清楚,直接看代码把。)


    3.题解

    双指针法

    class Solution {
        public int threeSumClosest(int[] nums, int target) {
            Arrays.sort(nums);
            int left=1;
            int right=nums.length-1;
            int result=nums[0]+nums[left]+nums[right];
            int newresult=0;
            if(nums.length==3){
                return nums[0]+nums[1]+nums[2];
            }
            for(int i=0;i<nums.length-2;i++){
                left=i+1;
                right=nums.length-1;
                while(left<right){
                    newresult=nums[i]+nums[left]+nums[right];
                    if(Math.abs(newresult-target)<=Math.abs(result-target)){
                        result=newresult;
                    }
                    if(result==target){
                        return result;
                    }
                    else if(newresult<target){
                        left++;
                    }
                    else{
                        right--;
                    }
                }
            }
            return result;
        }
    }
    
    
    花五年时间成为某个领域的专家
  • 相关阅读:
    PHP引用与global操作符
    php关联数组与索引数组及其显示
    vim列模式
    PHP 魔术方法之__set() __get() 方法
    给图片、表格、公式自编号
    如何将本地项目与coding.net/github上的项目绑定
    用 ElementTree 在 Python 中解析 XML
    用 ElementTree 在 Python 中解析 XML
    正则表达式介绍
    一个javascript面试题解析
  • 原文地址:https://www.cnblogs.com/sang-bit/p/11716792.html
Copyright © 2011-2022 走看看