由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
JobHunting版 - 问一道算法题(zz)
相关主题
问个最长递增序列的问题数组中最长的区间,满足该区间内的数排序后是连续的
发个amazon online test 的题LCA居然有constant time and linear space的解法
[合集] 微软:求一个数列中最长单调上升子列,要求O(nlogn)时间问个算法题
nlogn for longest increasing subsequence这道题目怎么做?
关于最长递增子序列的问题。merge a1,a2,..b1,b2 to a1b1a2b2..
请教个题目,求最长subarry, average < k来讨教个面试题
问一道题(5)微软:求一个数列中最长单调上升子列,要求O(nlogn)时间
[合集] 一个算法题Facebook interview 面经
相关话题的讨论汇总
话题: 数组话题: 子数话题: 最长话题: 输出话题: 连续
进入JobHunting版参与讨论
1 (共1页)
f*****e
发帖数: 2992
1
给一个包含数字的数组,求该数组的最长的子数组(这里说的子数组是下标连续),要
求这个子数组中的数组是一个连续的序列(不需要排好序)。
例如,给一个数组[4,5,1,5,7,6,8,4,1], 最长的满足条件的子数组是[5,7,6,8,4]。因
为该子数组中,5,7,6,8,4是一个连续的序列。
求算法
p*****2
发帖数: 21240
2

。因
[4,5,5,7,6,8,4,1]
输出是什么?

【在 f*****e 的大作中提到】
: 给一个包含数字的数组,求该数组的最长的子数组(这里说的子数组是下标连续),要
: 求这个子数组中的数组是一个连续的序列(不需要排好序)。
: 例如,给一个数组[4,5,1,5,7,6,8,4,1], 最长的满足条件的子数组是[5,7,6,8,4]。因
: 为该子数组中,5,7,6,8,4是一个连续的序列。
: 求算法

f*****e
发帖数: 2992
3
5,7,6,8,4

【在 p*****2 的大作中提到】
:
: 。因
: [4,5,5,7,6,8,4,1]
: 输出是什么?

p*****2
发帖数: 21240
4
BF要N^3.
这题复杂度什么要求?
a*******y
发帖数: 1040
5
为什么N^3, 你拍好序做,排序O(nlogn)
然后有个map来存index
f*****e
发帖数: 2992
6
没有要求,zz的。

【在 p*****2 的大作中提到】
: BF要N^3.
: 这题复杂度什么要求?

l*********8
发帖数: 4642
7
O(n^3) is for straightforward algorithm.
If you sort the array and use a map, you still need at least O(n^2), right?

【在 a*******y 的大作中提到】
: 为什么N^3, 你拍好序做,排序O(nlogn)
: 然后有个map来存index

f*****e
发帖数: 2992
8
有重复元素怎么办?

【在 a*******y 的大作中提到】
: 为什么N^3, 你拍好序做,排序O(nlogn)
: 然后有个map来存index

f*****e
发帖数: 2992
9
给一个包含数字的数组,求该数组的最长的子数组(这里说的子数组是下标连续),要
求这个子数组中的数组是一个连续的序列(不需要排好序)。
例如,给一个数组[4,5,1,5,7,6,8,4,1], 最长的满足条件的子数组是[5,7,6,8,4]。因
为该子数组中,5,7,6,8,4是一个连续的序列。
求算法
p*****2
发帖数: 21240
10

。因
[4,5,5,7,6,8,4,1]
输出是什么?

【在 f*****e 的大作中提到】
: 给一个包含数字的数组,求该数组的最长的子数组(这里说的子数组是下标连续),要
: 求这个子数组中的数组是一个连续的序列(不需要排好序)。
: 例如,给一个数组[4,5,1,5,7,6,8,4,1], 最长的满足条件的子数组是[5,7,6,8,4]。因
: 为该子数组中,5,7,6,8,4是一个连续的序列。
: 求算法

相关主题
请教个题目,求最长subarry, average < k数组中最长的区间,满足该区间内的数排序后是连续的
问一道题(5)LCA居然有constant time and linear space的解法
[合集] 一个算法题问个算法题
进入JobHunting版参与讨论
f*****e
发帖数: 2992
11
5,7,6,8,4

【在 p*****2 的大作中提到】
:
: 。因
: [4,5,5,7,6,8,4,1]
: 输出是什么?

p*****2
发帖数: 21240
12
BF要N^3.
这题复杂度什么要求?
a*******y
发帖数: 1040
13
为什么N^3, 你拍好序做,排序O(nlogn)
然后有个map来存index
f*****e
发帖数: 2992
14
没有要求,zz的。

【在 p*****2 的大作中提到】
: BF要N^3.
: 这题复杂度什么要求?

l*********8
发帖数: 4642
15
O(n^3) is for straightforward algorithm.
If you sort the array and use a map, you still need at least O(n^2), right?

【在 a*******y 的大作中提到】
: 为什么N^3, 你拍好序做,排序O(nlogn)
: 然后有个map来存index

f*****e
发帖数: 2992
16
有重复元素怎么办?

【在 a*******y 的大作中提到】
: 为什么N^3, 你拍好序做,排序O(nlogn)
: 然后有个map来存index

Y********f
发帖数: 410
17
O(N^2)算法:
先算出对所有i>j, i到j的区间的最大最小值,需要二维数组。这个可以O(N^2)做到
然后计算一个一维数组,其值是到该位置为止最长的无重复元素的子数组元素个数。这
个可以O(N)做到。
再利用如果一个数组没有重复元素,其最大值-最小值=元素的个数-1 算出最长的子数
组。
不知道有没有更快的算法。

。因

【在 f*****e 的大作中提到】
: 给一个包含数字的数组,求该数组的最长的子数组(这里说的子数组是下标连续),要
: 求这个子数组中的数组是一个连续的序列(不需要排好序)。
: 例如,给一个数组[4,5,1,5,7,6,8,4,1], 最长的满足条件的子数组是[5,7,6,8,4]。因
: 为该子数组中,5,7,6,8,4是一个连续的序列。
: 求算法

f*******t
发帖数: 7549
18
如果没有重复数字,这题是子序列构成最长连续数字的变种吧,想了一下应该能用相同
的方法,O(n)时间+O(n)空间的复杂度
b***e
发帖数: 1419
19
稍微聪明一点的BF应该是n*log(n):
固定k, 长度为k的valid substring的存在性可以用O(n)判断。 对k做二分。

【在 p*****2 的大作中提到】
: BF要N^3.
: 这题复杂度什么要求?

Y********f
发帖数: 410
20
"长度为k的valid substring的存在性可以用O(n)判断"
这个怎么弄?

【在 b***e 的大作中提到】
: 稍微聪明一点的BF应该是n*log(n):
: 固定k, 长度为k的valid substring的存在性可以用O(n)判断。 对k做二分。

相关主题
这道题目怎么做?微软:求一个数列中最长单调上升子列,要求O(nlogn)时间
merge a1,a2,..b1,b2 to a1b1a2b2..Facebook interview 面经
来讨教个面试题这道题太神奇了,求排序算法,并且要求时间复杂度为O(n),空间复杂度O(1),
进入JobHunting版参与讨论
d**********x
发帖数: 4083
21
RMQ, O(nlogn)预处理,O(1)查询区间最大最小值
只是我对那个二分查找存疑

【在 Y********f 的大作中提到】
: "长度为k的valid substring的存在性可以用O(n)判断"
: 这个怎么弄?

S******t
发帖数: 151
22
不能二分。。。
这个题目很久很久以前我在blog上写过一次……=_=
http://computationalpuzzles.wordpress.com/2011/12/05/algorithms

【在 d**********x 的大作中提到】
: RMQ, O(nlogn)预处理,O(1)查询区间最大最小值
: 只是我对那个二分查找存疑

d**********x
发帖数: 4083
23
nice...
我就满足于RMQ好了。。

【在 S******t 的大作中提到】
: 不能二分。。。
: 这个题目很久很久以前我在blog上写过一次……=_=
: http://computationalpuzzles.wordpress.com/2011/12/05/algorithms

j*****y
发帖数: 1071
24
rmq 是啥啊?

【在 d**********x 的大作中提到】
: nice...
: 我就满足于RMQ好了。。

d**********x
发帖数: 4083
25
http://baike.baidu.com/view/1536346.htm

【在 j*****y 的大作中提到】
: rmq 是啥啊?
x*****0
发帖数: 452
26
mark
G****A
发帖数: 4160
27
我怎么觉得你这个O(n^2)内搞不定

【在 Y********f 的大作中提到】
: O(N^2)算法:
: 先算出对所有i>j, i到j的区间的最大最小值,需要二维数组。这个可以O(N^2)做到
: 然后计算一个一维数组,其值是到该位置为止最长的无重复元素的子数组元素个数。这
: 个可以O(N)做到。
: 再利用如果一个数组没有重复元素,其最大值-最小值=元素的个数-1 算出最长的子数
: 组。
: 不知道有没有更快的算法。
:
: 。因

c********t
发帖数: 5706
28
如果是允许重复的,既[4,5,6,5,7,6,8]可以是解,能不能循环切割?
1)扫一遍求出所有 min到max中的区间, 例子中 [1],[4,5,6,7,8]
2) 扫第二遍,不同区间的切割开成不同的数组[4,5] [1] [5,7,6,8,4] [1]
3)对2)的每个结果,调用1,recursion.如果1)的结果只有一个区间,既找到了一个。
最后返回最长的,当然3)中,如果区间长度小于等于已经找到的最长数组,就不用处理
了。
这个算法复杂度最坏好像是O(n^2)(都不连续),但实际应该很快吧。O(n) space, 好
处是容易写 :D

。因

【在 f*****e 的大作中提到】
: 给一个包含数字的数组,求该数组的最长的子数组(这里说的子数组是下标连续),要
: 求这个子数组中的数组是一个连续的序列(不需要排好序)。
: 例如,给一个数组[4,5,1,5,7,6,8,4,1], 最长的满足条件的子数组是[5,7,6,8,4]。因
: 为该子数组中,5,7,6,8,4是一个连续的序列。
: 求算法

b***e
发帖数: 1419
29
对,不能二分。k有解不能退出(k-1)有解。

【在 S******t 的大作中提到】
: 不能二分。。。
: 这个题目很久很久以前我在blog上写过一次……=_=
: http://computationalpuzzles.wordpress.com/2011/12/05/algorithms

1 (共1页)
进入JobHunting版参与讨论
相关主题
Facebook interview 面经关于最长递增子序列的问题。
这道题太神奇了,求排序算法,并且要求时间复杂度为O(n),空间复杂度O(1),请教个题目,求最长subarry, average < k
讨论一题,去除有序数组的重复元素问一道题(5)
一个查找算法题[合集] 一个算法题
问个最长递增序列的问题数组中最长的区间,满足该区间内的数排序后是连续的
发个amazon online test 的题LCA居然有constant time and linear space的解法
[合集] 微软:求一个数列中最长单调上升子列,要求O(nlogn)时间问个算法题
nlogn for longest increasing subsequence这道题目怎么做?
相关话题的讨论汇总
话题: 数组话题: 子数话题: 最长话题: 输出话题: 连续