最小差值

最小差值

https://ac.nowcoder.com/acm/contest/9004/A

牛客编程巅峰赛S2第1场 第一题
最小差值
给你一个数组aa,请你求出数组a中任意两个元素间差的绝对值的最小值。(2≤len(a)≤10^3 )
题目理解:
在答题过程中,我陷入了一个自己的死胡同,我的想法是先将数组排序,然后选择冒泡法,分别计算从i=0开始,后面的每个数和其差值,然后每次比较出最小值,并存入临时数组res,最后,排序临时数组,找到最小值。
我的误区就是:将数组a的所有元素排序之后,那么两个元素之间差的绝对值的最小值应该存在于排序后的两个相邻元素之间,而不必去计算所有的元素间差值。
通过的解法如下:

class Solution {
public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     * 求最小差值
     * @param a int整型vector 数组a
     * @return int整型
     */
    int minDifference(vector<int>& a) {
        // write code here
        sort(a.begin(),a.end());
        vector<int> res;
        int j=0;
        for(int i=0;i<a.size()-1;i++)
        {
            int ans=a[a.size()-1]-a[i];
            for(int j=a.size()-1;j>i;j--)
            {
                ans=min(ans,a[j]-a[i]);
            }
            res.push_back(ans);
        }
        sort(res.begin(),res.end());
        return res[0];
    }
};
全部评论

相关推荐

想出去带家人放松顺便自己也休息下,但怕有时间冲突
白火同学:如果国庆真有面试,那国庆都不放假的公司,未免也太压榨了,还是避坑吧。
我的秋招日记
点赞 评论 收藏
分享
爱睡觉的冰箱哥:你是我今晚见过的最美的牛客女孩
点赞 评论 收藏
分享
09-20 22:39
中南大学
故事和酒66:意思就是用了AI辅助也不一定做得出来,还是有区分度,不然他不会让你用的
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务