假如有一组数字:
{1, 1, 1, 2, 3, 4}
怎么去判断是否有重复次数大于 2 的重复数字(比如 1 ),有没有递增递减组合长度大于 2 的组合(比如 123 )。该用正则表达式判断还是其他方法呢?
###################################
{1, 3, 5, 4, 1} --> 无重复数字和递增递减
{1, 1, 1, 3, 5} --> 有重复数字但无递增递减
{1, 3, 4, 5, 9} --> 无重复数据但有递增递减
{1, 1, 1, 2, 3} --> 有重复数字和有递增递减
###################################
1
yalanaika 2016-08-09 15:58:56 +08:00
看你要求优化时间还是空间,优化时间的话都有很方便的做法,第一问直接遍历一遍就好 第二问用最长增长子序列算法跑一下就好, https://en.wikipedia.org/wiki/Longest_increasing_subsequence
|
2
a199261800 2016-08-09 16:04:56 +08:00
@yalanaika 搞过算法?最长增长子序列,好熟悉的字眼
|
3
menc 2016-08-09 16:07:29 +08:00
@a199261800 本科基本知识
|
4
wangxn 2016-08-09 16:17:42 +08:00 via Android
1 1 2 1 3 算不算有重复数字?算不算有递增序列?
|
7
wander2008 2016-08-09 17:46:30 +08:00 via iPhone
leetcode 上有个题就是求自增序列的。去看看,
|
8
messyidea 2016-08-09 17:52:33 +08:00
只要求找递增递减组合长度大于 2 ,为啥还要用最长增长子序列 - -
|
9
neosfung 2016-08-09 18:06:13 +08:00
一个 map 保存出现次数,遍历的时候顺便判断和前面两个元素是否构成递增递减。
如果这条是面试题,那还真的缺点水准 |