首页 > 其他分享 >力扣1200 最小绝对差

力扣1200 最小绝对差

时间:2023-12-11 20:05:35浏览次数:27  
标签:arr int res 1200 back 力扣 vector 最小 push

Problem: 1200. 最小绝对差

思路

先排序(用sort),找出最小绝对差,然后再次遍历添加数组


class Solution {
public:
    vector<vector<int>> minimumAbsDifference(vector<int>& arr) {
        vector<vector<int>>res;
        sort(arr.begin(),arr.end());
        int mi=arr[1]-arr[0],n=arr.size();
        if(n==2){
            res.push_back(arr);
            return res;
        }
        
        for(int i=0;i<n-1;i++){
            if(arr[i+1]-arr[i]<mi)mi=(arr[i+1]-arr[i]);
        }
        for(int i=0;i<n-1;i++){
            if(arr[i+1]-arr[i]==mi){
                vector<int>l;
                l.push_back(arr[i]);
                l.push_back(arr[i+1]);
                res.push_back(l);
            }
        }

        return res;
    }
};

标签:arr,int,res,1200,back,力扣,vector,最小,push
From: https://blog.51cto.com/u_15974747/8776802

相关文章

  • P4123 [CQOI2016] 不同的最小割
    题意给\(n\)个点两两求最小割,问不同的最小割的数量。Sol最小割树。每次最小割完,对于源点集和汇点集分别再做一遍最小割。这样递归下去对于每次的源点和汇点连边,边权为最小割的值。Code#include<iostream>#include<algorithm>#include<cstdio>#include<array>#inc......
  • 力扣70-爬楼梯
    该题难度为【简单】第一遍:暴力解法,写了一个递归,时间复杂度特别高,提交后显示“超时”。第二遍:看了一遍官方的题解后,使用了一个临时变量保存每一步的计算结果,先查询是否已经计算过,如果查不到结果再计算。提交后显示“通过”。第三遍:看官方解法的时候,我是先看代码的,完全看不懂为什......
  • 111. 二叉树的最小深度
    目录题目完美踩坑题解题目给定一个二叉树,找出其最小深度。最小深度是从根节点到最近叶子节点的最短路径上的节点数量。示例1:输入:root=[3,9,20,null,null,15,7]输出:2示例2:输入:root=[2,null,3,null,4,null,5,null,6]输出:5完美踩坑之前好几个题做过求树的高......
  • [LeetCode Hot 100] LeetCode155. 最小栈
    题目描述思路一:使用辅助栈定义一个[数据栈]来支持push、pop、top操作定义一个[辅助栈],其栈顶为当前的最小值,以支持常数时间复杂度的getMin操作思路二:使用ArrayDeque栈元素中除了保存当前值之外,额外保存当前最小值使用静态内部类方法一:对应思路一classMinStack{......
  • 【教3妹学编程-算法题】需要添加的硬币的最小数量
    3妹:2哥2哥,你有没有看到新闻,有人中了2.2亿彩票大奖!2哥 :看到了,2.2亿啊,一生一世也花不完。3妹:为啥我就中不了呢,不开心呀不开心。2哥 :得了吧,你又不买彩票,还是脚踏实地的好~3妹:小富靠勤,中富靠德,大富靠命,可能是我命不好。2哥 :哎,想我口袋只有几个硬币,叮咚作响。3妹:说到硬币,我......
  • 2023-12-09:用go语言,给你两个整数数组 arr1 和 arr2, 返回使 arr1 严格递增所需要的最小
    2023-12-09:用go语言,给你两个整数数组arr1和arr2,返回使arr1严格递增所需要的最小「操作」数(可能为0)。每一步「操作」中,你可以分别从arr1和arr2中各选出一个索引,分别为i和j,0<=i<arr1.length和0<=j<arr2.length,然后进行赋值运算arr1[i]=arr2[j]。如果......
  • 最小费用组最大流——EK算法
    时间复杂度O(nm^2),理论上限//n,m,s,t,分别代表该网络的点数n,网络的边数m,源点编号s,汇点编号t。constintN=5010,M=100010,INF=1e8;intn,m,S,T;structedge{intv,c,w,ne;}e[M];inth[N],idx=1;//从2,3开始配对intd[N],mf[N],pre[N],vis[N];intflow,cost;voidadd(inta,......
  • 最小生成树
    假设\(n\)表示图中点数,\(m\)表示图中边数。Prim算法适用于稠密图,时间复杂度\(O(n^2)\)。核心思想:每次挑一条与当前集合相连的最短边。C++代码//st[i]表示点i是否在当前生成树集合中//dist[i]表示点i到当前集合的最短边的长度//g[i][j]表示点i和点j之间边的长度......
  • n个数算最小公倍数(优化版)
    #include<stdio.h>intret(intx,inty){  inti=1;  if(x%y==0||y%x==0)    return(x>y?x:y);  else  {   for(i=1;i<=x*y;i++)    {      i=x*i;      if(i%y==0) ......
  • QT最小化程序到托盘运行
    MinTray说明实现程序关闭时最小化托盘的功能托盘实现显示主页面和退出的功能支持扩展,直接引用TrayIcon类即可,对外暴露接口单例实现,可复用警告注:博主所有资源永久免费,若有帮助,请点赞转发是对我莫大的帮助注:博主本人学习过程的分享,引用他人的文章皆会标注原......