欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

第三周

程序员文章站 2022-05-26 22:25:45
...
                        Maximum Gap 

                    第三周    2017/9/24

题目源地址——https://leetcode.com/problems/maximum-gap/description/

题目描述:

Given an unsorted array, find the maximum difference between the successive elements in its sorted form.

Try to solve it in linear time/space.

Return 0 if the array contains less than 2 elements.

You may assume all elements in the array are non-negative integers and fit in the 32-bit signed integer range.

题目的要求是给出一个未排序的数组,然后求出这个数组在已排序好的情况下两两之间相差最大的值
这是自己的代码:

int maximumGap(vector<int>& nums) {
        int result = 0, max = 0;
        int size = nums.size();

        if (size >= 2) {
        /*看到数组是以vector的方式传进来,就是用Algorithm的sort方法*/
            sort(nums.begin(), nums.end());

            /*排序好之后就是简单的遍历*/
            for (int i = 0; i < size - 1; i++) {
                if (nums[i + 1] - nums[i] > max) {
                    max = nums[i + 1] - nums[i];
                }
            }
        }
        return max;
    }

代码量不多
其实,这个问题一般最先想到的是先排序,然后再找出最大值。而我的算法也很容易,但显然,算法的时间复杂度并没有达到O(n)。所以,也就不是好的算法。

第三周

排名也不算太好,还有很大进步空间,时间复杂度还可以更少。
相关标签: Sort