f***t 发帖数: 2247 | 1 求教一个思路:
已知一个一维数组 a=(1,2,2,2,3,2,2,4),如何快速判定元素“2“连续出现的最大次数
为3?
麻烦各路大神注意三个要求:
1,该元素必须是连续存在,中间不能有任何其他数值间隔
2,只求出现次数的最大值即可,次最大值等可以不管
3,算法需要越快越好
还是灌水paper用。恳请各路大神出手指点迷津!先多谢了! | d****o 发帖数: 32610 | 2 这个看着怎么也得全部顺序过一遍
没啥特别快的算法
【在 f***t 的大作中提到】 : 求教一个思路: : 已知一个一维数组 a=(1,2,2,2,3,2,2,4),如何快速判定元素“2“连续出现的最大次数 : 为3? : 麻烦各路大神注意三个要求: : 1,该元素必须是连续存在,中间不能有任何其他数值间隔 : 2,只求出现次数的最大值即可,次最大值等可以不管 : 3,算法需要越快越好 : 还是灌水paper用。恳请各路大神出手指点迷津!先多谢了!
| f*******3 发帖数: 584 | 3 雖然其它算法是有些許快,但其它算法有overhead,而且易產生思慮不周的bug,得不
償失。
喜歡showoff的老印最會搞這。
【在 d****o 的大作中提到】 : 这个看着怎么也得全部顺序过一遍 : 没啥特别快的算法
| f***t 发帖数: 2247 | 4 都有些啥算法啊?可以借鉴一下思路吗?
【在 f*******3 的大作中提到】 : 雖然其它算法是有些許快,但其它算法有overhead,而且易產生思慮不周的bug,得不 : 償失。 : 喜歡showoff的老印最會搞這。
| B********u 发帖数: 1 | 5 还能有啥办法,从头到尾数一遍
两层循环,遇到2就开始计数。 O(n) | s********d 发帖数: 105 | | B********u 发帖数: 1 | 7 一个可以减少1/4计算量的办法,是遇到2 at i之后跳一位检查,如果at i+2不是2可以
直接跳过at i+1
【在 B********u 的大作中提到】 : 还能有啥办法,从头到尾数一遍 : 两层循环,遇到2就开始计数。 O(n)
| m*****n 发帖数: 3575 | 8 2,2,x,2,2,y,2,2
这就是连续出现的最大次数场景
x和y均不等于2
当然是3个。
(8+1)//3 = 3 |
|