• 请不要在回答技术问题时复制粘贴 AI 生成的内容
hyyy
V2EX  ›  程序员

如何判断一组数字中的重复次数和有无递增递减?

  •  
  •   hyyy · Aug 9, 2016 · 4027 views
    This topic created in 3739 days ago, the information mentioned may be changed or developed.

    假如有一组数字:

    {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} --> 有重复数字和有递增递减
    ###################################
    
    9 replies  •  2016-08-09 18:06:13 +08:00
    yalanaika
    yalanaika
    Aug 9, 2016
    1
    看你要求优化时间还是空间,优化时间的话都有很方便的做法,第一问直接遍历一遍就好 第二问用最长增长子序列算法跑一下就好, https://en.wikipedia.org/wiki/Longest_increasing_subsequence
    a199261800
    a199261800
    Aug 9, 2016
    2
    @yalanaika 搞过算法?最长增长子序列,好熟悉的字眼
    menc
    menc
    Aug 9, 2016
    3
    @a199261800 本科基本知识
    wangxn
    wangxn
    Aug 9, 2016 via Android
    4
    1 1 2 1 3 算不算有重复数字?算不算有递增序列?
    hyyy
    hyyy
    OP
    Aug 9, 2016
    5
    @wangxn 算重复数字,但是不算递增序列。
    wangxn
    wangxn
    Aug 9, 2016 via Android
    6
    @hyyy 那这个没必要用最长递增子序列了,直接一遍扫描就完成了。
    wander2008
    wander2008
    Aug 9, 2016 via iPhone
    7
    leetcode 上有个题就是求自增序列的。去看看,
    messyidea
    messyidea
    Aug 9, 2016
    8
    只要求找递增递减组合长度大于 2 ,为啥还要用最长增长子序列 - -
    neosfung
    neosfung
    Aug 9, 2016
    9
    一个 map 保存出现次数,遍历的时候顺便判断和前面两个元素是否构成递增递减。
    如果这条是面试题,那还真的缺点水准
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   2811 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 59ms · UTC 13:48 · PVG 21:48 · LAX 05:48 · JFK 08:48
    ♥ Do have faith in what you're doing.