由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
JobHunting版 - 求解释丽寇儿的新题maximum gap题目到底啥意思?
相关主题
L家的面试体验让人有些无语求教一道面试题
再问一道题median of N^2 numbers across N machines
Maximum Contiguous Subarray请教一道算法题
要去google onsite的同学们问道关于快速找bucket的面试题
有人同看First Missing Positive 吗?这题怎么做?
再问个C programming考试的题目请教最优算法:最多装满水的桶?
求这道题的O(N)解 (转载)web count 设计
leetcode 的 triangle 一题 oj 怎么不过一道巨常见的题
相关话题的讨论汇总
话题: int话题: val话题: vmin话题: vmax话题: num
进入JobHunting版参与讨论
1 (共1页)
y*****e
发帖数: 712
1
Given an unsorted array, find the maximum difference between the successive
elements in its sorted form.
Try to solve it in linear time/space.
我理解的是是找相邻两个数的差,把这些差(gap)从小到大排列,
但最后只return最大的差就行了?那还排列大小干嘛?
能有人给个例子介绍一下吗?
谢谢!
m*********1
发帖数: 204
2
我的理解是不是,例如
3 5 6 10 7 11 7 8
那么里面最大的连续数列是5 6 7 8 所以 就是8-5 = 3
y*****e
发帖数: 712
3
啊,原来是这样,那不就是longest consecutive sequence的变形题吗,
有其他的考点吗?

【在 m*********1 的大作中提到】
: 我的理解是不是,例如
: 3 5 6 10 7 11 7 8
: 那么里面最大的连续数列是5 6 7 8 所以 就是8-5 = 3

h*********2
发帖数: 444
4
这个题的意思是找最大的排序后相邻的两个数之间的gap
比如 3 5 1 2 9
排序后是 1 2 3 5 9
那么最大的gap就是9-5 = 4
w****a
发帖数: 710
5
bucket sorting的变种。
至少LC给出的solution是这个意思。

【在 y*****e 的大作中提到】
: 啊,原来是这样,那不就是longest consecutive sequence的变形题吗,
: 有其他的考点吗?

s***c
发帖数: 639
6
最大是指在,如果输入数组排序后的新数组
写了一个,是O(n),但过不了大数集,需要优化
class Solution {
public:
int maximumGap(vector &num) {
if(num.size()<2) return 0;
if(num.size()==2) return abs(num[0]-num[1]);
unordered_set hh;
int res(0), val_pre(-1), val_cur(-1);
int vmax(-1), vmin(INT_MAX);
for(int i=0; i hh.insert(num[i]);
vmax=std::max(vmax, num[i]);
vmin=std::min(vmin, num[i]);
}

for(int val=vmin; val if(hh.find(val)!=hh.end()){
if(val_pre<0) val_pre = val;
val_cur = val;
res = std::max(res, val_cur-val_pre);
val_pre = val_cur;
}
}
res=std::max(res, vmax-val_pre);
return res;
}
};

successive

【在 y*****e 的大作中提到】
: Given an unsorted array, find the maximum difference between the successive
: elements in its sorted form.
: Try to solve it in linear time/space.
: 我理解的是是找相邻两个数的差,把这些差(gap)从小到大排列,
: 但最后只return最大的差就行了?那还排列大小干嘛?
: 能有人给个例子介绍一下吗?
: 谢谢!

d****n
发帖数: 233
7
我也是看discussion受到启发,先找max和min, 再把max-min分成n个区间。把原数组
映射到这n个区间,对映射到每个区间的数,找最大和最小。 在从1到n找这些区间的最
大距离。
解法在我的blog: http://codeanytime.blogspot.com/2014/12/maximum-gap.html

【在 s***c 的大作中提到】
: 最大是指在,如果输入数组排序后的新数组
: 写了一个,是O(n),但过不了大数集,需要优化
: class Solution {
: public:
: int maximumGap(vector &num) {
: if(num.size()<2) return 0;
: if(num.size()==2) return abs(num[0]-num[1]);
: unordered_set hh;
: int res(0), val_pre(-1), val_cur(-1);
: int vmax(-1), vmin(INT_MAX);

s***c
发帖数: 639
8
得把bucket变大,这下可以过了
class Solution {
public:
int maximumGap(vector &num) {
unordered_set hh;
int res(0);
int vmax(-1), vmin(INT_MAX);
for(int i=0; i hh.insert(num[i]);
vmax=std::max(vmax, num[i]);
vmin=std::min(vmin, num[i]);
}
int hsz=hh.size();
if(hsz<=1) return res;
double dbin = double(vmax-vmin)/(hsz-1);

vector minvec(hsz, INT_MAX), maxvec(hsz, -1);
for(int i=0; i int val=num[i], ib=(int)((val-vmin)/dbin);
minvec[ib] = std::min(minvec[ib], val);
maxvec[ib] = std::max(maxvec[ib], val);
}

int maxpre(-1);
for(int i=0; i if(maxvec[i]<0) continue;
if(maxpre<=0) maxpre=maxvec[i];
res = std::max(res, minvec[i]-maxpre);
maxpre = maxvec[i];
}

return res;
}
};

【在 s***c 的大作中提到】
: 最大是指在,如果输入数组排序后的新数组
: 写了一个,是O(n),但过不了大数集,需要优化
: class Solution {
: public:
: int maximumGap(vector &num) {
: if(num.size()<2) return 0;
: if(num.size()==2) return abs(num[0]-num[1]);
: unordered_set hh;
: int res(0), val_pre(-1), val_cur(-1);
: int vmax(-1), vmin(INT_MAX);

s***c
发帖数: 639
9
真得把bucket变大,加上一定只能遍历数组才行呀

【在 d****n 的大作中提到】
: 我也是看discussion受到启发,先找max和min, 再把max-min分成n个区间。把原数组
: 映射到这n个区间,对映射到每个区间的数,找最大和最小。 在从1到n找这些区间的最
: 大距离。
: 解法在我的blog: http://codeanytime.blogspot.com/2014/12/maximum-gap.html

y*****e
发帖数: 712
10
非常感谢ls的几位提供思路,写了一个Java的,过了OJ, oh yeah!!
1 (共1页)
进入JobHunting版参与讨论
相关主题
一道巨常见的题有人同看First Missing Positive 吗?
问道大数据的题再问个C programming考试的题目
Groupon电面求这道题的O(N)解 (转载)
简单map reduce mean median, 傻逼回答leetcode 的 triangle 一题 oj 怎么不过
L家的面试体验让人有些无语求教一道面试题
再问一道题median of N^2 numbers across N machines
Maximum Contiguous Subarray请教一道算法题
要去google onsite的同学们问道关于快速找bucket的面试题
相关话题的讨论汇总
话题: int话题: val话题: vmin话题: vmax话题: num