算法题(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;
相关文章
|
Java API 网络架构
深入理解 Spring Boot 中的 @RestController 注解:概念与实践
【4月更文挑战第20天】在现代Web开发中,创建RESTful服务已成为常态。Spring Boot通过提供@RestController注解,极大简化了REST API的开发过程。本篇博客旨在详细介绍@RestController的概念、优势以及在Spring Boot项目中的具体应用方法。
871 8
|
存储 关系型数据库 MySQL
OceanBase数据库 与 mysql 对比
OceanBase数据库 与 mysql 对比
5397 1
|
敏捷开发 测试技术 持续交付
阿里云云效产品使用合集之想要获取对应账号的阿里云账号id该如何操作
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。
|
2月前
|
域名解析 弹性计算 安全
阿里云域名备案流程(从域名注册到域名备案成功图文详解流程)
本教程以实操形式为阿里云新老用户详细讲解从“注册阿里云账号”、“阿里云账号实名”、“租赁阿里云服务器”、“创建阿里云域名模板”、“注册阿里云域名”、“阿里云域名备案”、“域名备案信息查询”、“阿里云域名解析”一整套流程图文详细讲解。
672 4
抖音自动抢红包脚本,全自动抖音抢红包福袋插件辅助器,自动找直播间智能
这是一段关于自动抢红包脚本的源码介绍。该脚本可实现24小时自动检测直播间红包功能,通过图像识别技术定位红包位置并模拟点击操作,大幅提升抢红包效率
|
10月前
|
域名解析 网络协议 测试技术
IP、掩码、网关、DNS1、DNS2到底是什么东西,ping telnet测试
理解IP地址、子网掩码、默认网关和DNS服务器的概念是有效管理和配置网络的基础。通过使用ping和telnet命令,可以测试网络连通性和服务状态,快速诊断和解决网络问题。这些工具和概念是网络管理员和IT专业人员日常工作中不可或缺的部分。希望本文提供的详细解释和示例能够帮助您更好地理解和应用这些网络配置和测试工具。
4797 2
|
Java Android开发
IDEA设置项目编码格式【修改为GBK 或 UTF-8】
这篇文章介绍了在IntelliJ IDEA中如何设置项目编码格式,包括将项目编码修改为GBK或UTF-8的详细步骤和图解。
19231 12
IDEA设置项目编码格式【修改为GBK 或 UTF-8】
|
网络协议 Linux 网络虚拟化
什么是 DHCP?为什么要使用它?
【8月更文挑战第4天】
8384 12
什么是 DHCP?为什么要使用它?