首页 > 其他分享 >16. 最接近的三数之和

16. 最接近的三数之和

时间:2022-11-27 17:47:11浏览次数:38  
标签:nums int 三数 16 Solution len include 接近 left

#include <vector>
#include <algorithm>
#include <iostream>
#include <cmath>
#include <unordered_map>
using namespace std;
class Solution {
public:
    Solution(){}
    ~Solution(){}
    int threeSumClosest(vector<int>& nums, int target) {
        //先对数组进行排序
        sort(nums.begin(),nums.end());
        int len=nums.size();
        int left;
        int right;
        int min=0x7FFFFFFF;
        unordered_map<int,int>map;
        for (int i = 0; i < len; i++)
        {
            //左指针
            left=i+1;
            //右指针
            right=len-1;
            while (left<right)
            {
                int temp=nums[left]+nums[right]+nums[i];
                if(temp==target){
                    return temp;
                }
                //当前和小于target,则左指针加1
                if (temp<target)
                {
                    left=left+1;
                }else{//当前和大于target,则右指针减1
                    right=right-1;
                }
                //绝对值判断是否接近
                if (abs(target-temp)<min)
                {
                    min=abs(target-temp);
                    map.insert(make_pair(min,temp));
                }
            }  
        }
        //用map查出最小绝对值所对应的和
        return map[min]; 
    }
};
 int main(){
    Solution s;
    vector<int> v{0,3,97,102,200};
    cout<<s.threeSumClosest(v,300);
    return 0;
 }

 

标签:nums,int,三数,16,Solution,len,include,接近,left
From: https://www.cnblogs.com/Yshun/p/16930180.html

相关文章

  • 第16章-Spring AOP中的基础API
    目录一、概述二、切点(Pointcut)三、通知(Advice)1.环绕通知2.前置通知3.异常通知4.后置通知四、通知者(Advisor)五、附录1.常用接口2.示例代码前面我们讲了基于XML和注......
  • 对dedecms、php168,phpcms、VeryCMS、DiyPage五款开源整站系统的简单评点(
    随着phpcms的开源,目前国内的开源整站系统(cms),已经有了三款功能比较强大的软件:dedecms、php168,phpcms,另外还有一个半吊子成品VeryCMS和一个起步中的DiyPage,这对站长来说,真是个......
  • 力扣162(java&python)-寻找峰值(中等)
    题目:峰值元素是指其值严格大于左右相邻值的元素。给你一个整数数组 nums,找到峰值元素并返回其索引。数组可能包含多个峰值,在这种情况下,返回任何一个峰值所在位置即可......
  • 16-内部类
    typora-root-url:images一、内部类1.1、什么是内部类​ 将类写在其他类的内部,可以写在其他类的成员位置和局部位置,这时写在其他类内部的类就称为内部类。其他类也称......
  • pwn | pwn2_sctf_2016
    pwn|pwn2_sctf_201632位ret2libc+整数溢出题目给了syscall但是找不到popeax,没办法使。exp如下:frompwnimport*fromLibcSearcher.LibcSearcherimport*impo......
  • 剑指offer——Day16 排序(简单)
    Day162022.11.22排序(简单)45.把数组排成最小的数自己实现没有思路题解也是比较大小,只是这个比较大小的方法是两个数字字符串stringx和stringy,如果x+y<y+x,说明x应该......
  • 【LeeCode】169. 多数元素
    【题目描述】​​https://leetcode.cn/problems/majority-element/description/?favorite=2cktkvj​​给定一个大小为 ​​n​​ 的数组 ​​nums​​ ,返回其中的多数元......
  • 博迪投资学·资本市场:第9、14、16章的模型总结
    第九章:资本资产定价模型资本资产定价模型(CPM)是现代金融经济学的莫基石。该模型对资产风险与其期望收益之间的关系给出了精准的预测。资本资产定价模型的一个关键观点是......
  • 使用vscode插件查看文件的16进制
    有时候想看看文件的16进制,又不想编写代码来处理,那么这时候可以使用vscode和插件HexEditor一键查看文件的16进制然后就可以查看文件的16进制了......
  • 【解题报告】CF DIV2 #ROUND 716 A~C
    【解题报告】CFDIV2#ROUND716A~C​​比赛链接​​​数学场/规律场A题5分钟速切,B题开始没看懂先看了C,发现C整不来,B整了半天打表找规律一发AC。D貌似要分块莫队之类的还......