求解答

200个数存在数组里,数字大小在1-100以内,如何找到出现频率最高的一个,不能用辅助内存,求各位大佬指点!!!
全部评论
水王PK题目
点赞 回复 分享
发布于 2017-09-26 22:58
摩尔投票算法
点赞 回复 分享
发布于 2017-09-26 22:21
不用辅助空间    原数组有200个空间可以用  第0-99位 用来计数1-100出现的次数 方法如下   由于数字不超过100,所以当出现一个1时,第0位的数字加1000  出现第二个1时再加1000 依次类推 最后比较第0-99位除以1000后的最大值即可
点赞 回复 分享
发布于 2017-09-26 22:16
打擂吧好像
点赞 回复 分享
发布于 2017-09-26 21:48
不用额外空间,那就只好先排序,然后再统计
点赞 回复 分享
发布于 2017-09-26 21:47
刚才是比较low的方法,还有就是遍历一遍的方法,o(n)的方法
点赞 回复 分享
发布于 2017-09-26 21:43
如果不能用辅助空间,可以先排序,然后用一个变量统计当前最大出现次数,如果后面出现次数还大于这个,就更新这个数
点赞 回复 分享
发布于 2017-09-26 21:38
上面回答的都是没有读懂剑指offer的人,只看过题,没有领会思想
点赞 回复 分享
发布于 2017-09-26 21:37
剑指offer题
点赞 回复 分享
发布于 2017-09-26 21:34

相关推荐

海螺很能干:每次看到这种简历都没工作我就觉得离谱
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务