算法题(5)

简介: 算法题(5)

题目

最接近的三数之和
给你一个长度为 n 的整数数组 nums 和 一个目标值 target。请你从 nums 中选出三个整数,使它们的和与 target 最接近。
返回这三个数的和。
假定每组输入只存在恰好一个解。
https://leetcode.cn/problems/3sum-closest/description/

解题

暴力解法

var threeSumClosest = function(nums, target) {
   
    let sum =nums[0]+nums[1]+nums[2];
    let diffValue =Math.abs(nums[0]+nums[1]+nums[2]-target);
    for(let i=0;i<nums.length-2;i++){
   
        for(let j=i+1;j<nums.length-1;j++){
   
            for(let k=j+1;k<nums.length;k++){
   
                if(diffValue > Math.abs(nums[i]+nums[j]+nums[k]-target)){
   
                    diffValue = Math.abs(nums[i]+nums[j]+nums[k]-target);
                    sum=nums[i]+nums[j]+nums[k];
                }
            }
        }
    }
    return sum;
};

2.排序+双指针(注意点:sort排序默认字符串排序)

nums.sort(function(a,b){
   return a-b});
    let diffValue = Math.abs(nums[0]+nums[1]+nums[2]-target);
    let sum = nums[0]+nums[1]+nums[2];
    for(let i=0;i<nums.length-2;i++){
   
        let start = i+1;
        let end=nums.length-1;
        while(start<end){
   
            let current = nums[i]+nums[start]+nums[end];
            if(Math.abs(current-target)<diffValue){
   
                diffValue = Math.abs(current-target);
                sum=current;
            }
            if(current>target){
   
                end--;
            }else if(current<target){
   
                start++;
            }else{
   
                return target;
            }
        }
    }
    return sum;
相关文章
|
1月前
|
算法
算法题(1)
算法题(1)
140 62
|
29天前
|
算法
算法题(7)
算法题(7)
10 3
|
自然语言处理 算法 程序员
解答算法题的一个小技巧
解答算法题的一个小技巧
|
12月前
|
算法
算法
一、算法 常见的图查找算法包括: 1. 深度优先搜索(DFS):从图中的一个节点开始,沿着一条路径一直深入直到无法再深入为止,然后回溯到上一个节点,继续深入其他路径,直到找到目标节点或遍历完所有节点。 2. 广度优先搜索(BFS):从图中的一个节点开始,先访问它的所有邻居节点,然后再依次访问邻居的邻居节点,直到找到目标节点或遍历完所有节点。 3. Dijkstra算法:用于在带权有向图中找到从一个节点到其他节点的最短路径。该算法通过不断更新节点的最短距离来逐步找到最短路径。 4. A*算法:类似于Dijkstra算法,但在计算最短路径时加入了启发式函数,用于估计目标节点的距离,从而加速搜索过程
389 0
|
算法
Warshall算法
Warshall算法
217 0
Warshall算法
|
算法 数据安全/隐私保护
《算法》世界 二
一.算法要素 1.数据对象的运算和操作:计算机可以执行的基本操作是以指令的形式描述的。一个计算机系统能执行的所有指令的集合,成为该计算机系统的指令系统。一个计算机的基本运算和操作有如下四类: 1.算术运算:加减乘除等运算 2.逻辑运算:或、且、非等运算 3.关系运算:大于、小于、等于、不等于等运算 4.数据传输:输入、输出、赋值等运算 2.算法的控制结构:一个算法的功能结构不仅取决于所选用的操作,而且还与各操作之间的执行顺序有关。
164 1
《算法》世界 二
|
算法
【算法之初步认识】
【算法之初步认识】
136 0
【算法之初步认识】
拓展欧几里得算法
拓展欧几里得算法
80 0
|
人工智能 算法
什么是算法?
当人们提到“算法”一词,往往就会把它们当成专属于“人工智能”的范畴,很多专业的计算机人士也是,提起算法就头疼,不知道如何学习算法,慢慢的对算法就会失去兴趣,算法不仅仅是计算机行业特有的,在我们的生活中也处处存在着算法,算法是专注于解决问题的过程和方法。
173 1
什么是算法?
|
算法 前端开发 rax
举轻若重,于无声处听惊雷,那些平平无奇的伟大算法
遥想笔者读大学时在技术讨论时多是储如i+=(++i)+(i++)之类的孔乙己式的问题,而最近我们关注的热点要不是删库跑路坐牢的程序员,要不是员工离职倾向分析系统;而反观国外大神的博客,要不就是这种切入点非常简单,但是最终能够升华至编程之道层面的举轻若重的文章,要不就是秀出那些智商碾压的神仙代码,从这个角度上看我们国内的IT技术氛围还有极大的提升空间。
举轻若重,于无声处听惊雷,那些平平无奇的伟大算法