【面试】Liveramp 面试题 面经 子序列问题

来源:互联网 发布:万网域名注册步骤 编辑:程序博客网 时间:2024/04/29 17:34

以上参考:http://www.1point3acres.com/bbs/forum.php?mod=viewthread&tid=138979&extra=page%3D1%26filter%3Dsortid%26sortid%3D311%26searchoption%5B3089%5D%5Bvalue%5D%5B5%5D%3D5%26searchoption%5B3089%5D%5Btype%5D%3Dcheckbox%26searchoption%5B3046%5D%5Bvalue%5D%3D28%26searchoption%5B3046%5D%5Btype%5D%3Dradio%26sortid%3D311

题目要求找到最长的最大值和最小值只差不超过1的子序列的长度。

个人觉得子序列问题通常比子串难,因为很灵活。

这个题目的思路是如果一个subseq中最大值和最小值之差不超过1,意味着里面的元素都是最小值或者比最小值大1。所以可以统计数组中所有的数字的次数,然后让每一个元素都做一次最小值,找出比其大一的元素的次数,两个次数想家,就是本次得到的最大长度。可以不找比其小一的,因为会在遍历至小一的元素时处理,只处理大一的元素即可。

该题目可以延伸至之差不大于N的情况,让每一个元素做最小值,找出比他大一,大二。。。大N的的元素的次数,求和即可。

0 0
原创粉丝点击