博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
LeetCode - Maximum Gap
阅读量:4982 次
发布时间:2019-06-12

本文共 1470 字,大约阅读时间需要 4 分钟。

2015.1.23 15:00

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.

Solution:

  This here is not an O(n) solution, but O(n * log(n)). Sort the array and find the maximal gap.

  As for a linear solution, I'm searching for it...

  Discussions online said it could be solved using bucket sort, but that doesn't really satisfy O(n) time scale, right? At least I wouldn't take it for O(n).

Accepted code:

1 // 1AC, not an O(n) solution, though, one not yet come up with... 2 #include 
3 using namespace std; 4 5 class Solution { 6 public: 7 int maximumGap(vector
&num) { 8 sort(num.begin(), num.end()); 9 int n;10 11 n = (int)num.size();12 if (n < 2) {13 return 0;14 }15 16 int i;17 int ans = abs(num[0] - num[1]);18 for (i = 2; i < n; ++i) {19 ans = max(ans, abs(num[i - 1] - num[i]));20 }21 22 return ans;23 }24 private:25 int max(const int &x, const int &y) {26 return x > y ? x : y;27 }28 29 int abs(const int &x) {30 return x >= 0 ? x : -x;31 }32 };

 

转载于:https://www.cnblogs.com/zhuli19901106/p/4244282.html

你可能感兴趣的文章
我喜欢的几款不错的vim插件
查看>>
eclipse在ubuntu13.04下崩溃crash
查看>>
wpf 右键ListBox可编辑
查看>>
hihocoder offer收割编程练习赛11 C 岛屿3
查看>>
maven+springmvc项目启动时,request mapping not found……
查看>>
提高JetBrains软件的性能
查看>>
ASP.NET:MVC中文件上传与地址变化处理
查看>>
Python 单向链表、双向链表
查看>>
Arrays, Hashtables and Dictionaries
查看>>
JAVA1种C++3种继承方式
查看>>
C#中DataTable排序
查看>>
架构学习提炼笔记(二):架构设计的流程是什么?
查看>>
hive常见问题解决干货大全
查看>>
seq命令
查看>>
centos7常见的操作01 UTC CST
查看>>
Java必会的基础知识(2)
查看>>
NHibernate系列文章目录
查看>>
函数内置方法
查看>>
Python_58之logging模块
查看>>
正则表达式
查看>>