由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
JobHunting版 - 请问一下最大增长子序列的O(nLogk)算法
相关主题
数组里找最大集合,该集合排序后是序列,有漂亮解法么?MS一道onsite面题 白板coding
题都感觉做对了,面试的人也满意,为什么二面过后还是直接悲剧呢……顺便上P面经自己设计的一道面试题
一个算法题Quick selection for k unsorted arrays
讨论一道算法2轮Amazon电面
请问如何binary search出数组中的重复元素数组里面找数个出现了奇数次的整数,怎么找?
问一道题A Simple Question on Binary Search
binary search里面你们是用 < 还是<=严格单调递增的最长子序列
square root的算法merge k个数组怎样的方法好?
相关话题的讨论汇总
话题: 最大话题: 100话题: binary话题: nlogk话题: 数组
进入JobHunting版参与讨论
1 (共1页)
f*******r
发帖数: 1086
1
自己刚刚写了一下O(n^2)的算法,还没想明白
O(nlogk)的算法的思想,哪位大侠麻烦赐教一下,
非常感谢!
l*****a
发帖数: 14598
2
where does K come from?

【在 f*******r 的大作中提到】
: 自己刚刚写了一下O(n^2)的算法,还没想明白
: O(nlogk)的算法的思想,哪位大侠麻烦赐教一下,
: 非常感谢!

f*******r
发帖数: 1086
3
也可以说是nLog(n) 吧,我是看到有文章提到k表示子序列的长度

【在 l*****a 的大作中提到】
: where does K come from?
S******a
发帖数: 862
4
http://en.wikipedia.org/wiki/Longest_increasing_subsequence

【在 f*******r 的大作中提到】
: 自己刚刚写了一下O(n^2)的算法,还没想明白
: O(nlogk)的算法的思想,哪位大侠麻烦赐教一下,
: 非常感谢!

f*******r
发帖数: 1086
5
非常感谢,不过刚看了一下还是没有清晰的思路,
能简单地描述一下思想吗?谢谢了!

【在 S******a 的大作中提到】
: http://en.wikipedia.org/wiki/Longest_increasing_subsequence
b******v
发帖数: 1493
6
wikipedia上面有

【在 f*******r 的大作中提到】
: 自己刚刚写了一下O(n^2)的算法,还没想明白
: O(nlogk)的算法的思想,哪位大侠麻烦赐教一下,
: 非常感谢!

c*********7
发帖数: 19373
7
也提出个问题,如果每次都是从上次结束的位置开始岂不是到O(n).比如第一个
increasing 是从1到k1,然后下个搜索从k1+1开始。
l******o
发帖数: 144
8
如果wiki都不能让你理解的话,我们可能也很难了。

非常感谢,不过刚看了一下还是没有清晰的思路,
能简单地描述一下思想吗?谢谢了!

【在 f*******r 的大作中提到】
: 非常感谢,不过刚看了一下还是没有清晰的思路,
: 能简单地描述一下思想吗?谢谢了!

x****r
发帖数: 99
9
wiki里面那个还稍微麻烦了,他那样是可以retrieve这个sequence的方法,如果只需要
长度,可以这样做
数组a[i]里面可以存长度为i的子序列,最小的结尾是多少
基本是这样
数组: 99 100 100 1 2 3 4
第1步. 99 :binary search 最大一个<=99的,没有,所以a[1] = 99;
第2步. 100 :binary search 最大一个<=100的,就是a[1], 所以a[2] = 100;(意
思是现在长度为2的不减数列最少是100结尾)
第3步. 100 :binary search 最大一个<=100的,是a[2],所以a[3] = 100;
第4步. 1 : binary search 最大一个<=1的,没有,所以a[1] = 1;
第5步. 2 : binary search 最大一个<=2的,是a[1],所以A[2] = 2;
第6步. 同上,设置a[3] = 3;
第7步. 同上, 设置a[4] = 4;
至此,取得最大的a的index,就是4,所以长度最长的不减小子串是4,不知道讲明白了
没有
y**i
发帖数: 1112
10
你这个情况如果数组是99 100 100 1 2呢,最后不是到a[2] = 2就停止了,最大index
= 2了?

【在 x****r 的大作中提到】
: wiki里面那个还稍微麻烦了,他那样是可以retrieve这个sequence的方法,如果只需要
: 长度,可以这样做
: 数组a[i]里面可以存长度为i的子序列,最小的结尾是多少
: 基本是这样
: 数组: 99 100 100 1 2 3 4
: 第1步. 99 :binary search 最大一个<=99的,没有,所以a[1] = 99;
: 第2步. 100 :binary search 最大一个<=100的,就是a[1], 所以a[2] = 100;(意
: 思是现在长度为2的不减数列最少是100结尾)
: 第3步. 100 :binary search 最大一个<=100的,是a[2],所以a[3] = 100;
: 第4步. 1 : binary search 最大一个<=1的,没有,所以a[1] = 1;

x****r
发帖数: 99
11
不是的,因为看到第三个100的时候,最大length已经被设置为3了,所以最后还是返回
3,返回的值是
这个数组里index最大的一个非空的值

index

【在 y**i 的大作中提到】
: 你这个情况如果数组是99 100 100 1 2呢,最后不是到a[2] = 2就停止了,最大index
: = 2了?

K******g
发帖数: 1870
12
不懂。
首先,binary search整个数组吗?比如说“binary search 最大一个<=99的”, 为什
么“没有”,如果是搜索这个数组,难道99不是吗?如果是搜索剩余的数组,难道4不
是吗?
为什么到第4步的时候,就回到“a【1】”去了?
非常confusing

【在 x****r 的大作中提到】
: wiki里面那个还稍微麻烦了,他那样是可以retrieve这个sequence的方法,如果只需要
: 长度,可以这样做
: 数组a[i]里面可以存长度为i的子序列,最小的结尾是多少
: 基本是这样
: 数组: 99 100 100 1 2 3 4
: 第1步. 99 :binary search 最大一个<=99的,没有,所以a[1] = 99;
: 第2步. 100 :binary search 最大一个<=100的,就是a[1], 所以a[2] = 100;(意
: 思是现在长度为2的不减数列最少是100结尾)
: 第3步. 100 :binary search 最大一个<=100的,是a[2],所以a[3] = 100;
: 第4步. 1 : binary search 最大一个<=1的,没有,所以a[1] = 1;

s*****n
发帖数: 350
13
妙哉!

【在 x****r 的大作中提到】
: wiki里面那个还稍微麻烦了,他那样是可以retrieve这个sequence的方法,如果只需要
: 长度,可以这样做
: 数组a[i]里面可以存长度为i的子序列,最小的结尾是多少
: 基本是这样
: 数组: 99 100 100 1 2 3 4
: 第1步. 99 :binary search 最大一个<=99的,没有,所以a[1] = 99;
: 第2步. 100 :binary search 最大一个<=100的,就是a[1], 所以a[2] = 100;(意
: 思是现在长度为2的不减数列最少是100结尾)
: 第3步. 100 :binary search 最大一个<=100的,是a[2],所以a[3] = 100;
: 第4步. 1 : binary search 最大一个<=1的,没有,所以a[1] = 1;

1 (共1页)
进入JobHunting版参与讨论
相关主题
merge k个数组怎样的方法好?请问如何binary search出数组中的重复元素
Rebuild BST using pre-order travesal问一道题
已知数组中每个元素距离排序以后的位置最多是k,排序该数组binary search里面你们是用 < 还是<=
问个binary search tree的问题square root的算法
数组里找最大集合,该集合排序后是序列,有漂亮解法么?MS一道onsite面题 白板coding
题都感觉做对了,面试的人也满意,为什么二面过后还是直接悲剧呢……顺便上P面经自己设计的一道面试题
一个算法题Quick selection for k unsorted arrays
讨论一道算法2轮Amazon电面
相关话题的讨论汇总
话题: 最大话题: 100话题: binary话题: nlogk话题: 数组