怎么求中位数 数组中有一个数字出现次数超过数组长度一半,找出这个数字(用C语言解决)。要求时间复杂度尽量小?
浏览量:1252
时间:2021-03-16 07:47:26
作者:admin
数组中有一个数字出现次数超过数组长度一半,找出这个数字(用C语言解决)。要求时间复杂度尽量小?
找出数组中出现次数超过一半的数字。用这种方法可以理解为求一个数的中值。基于这种思想,最直观的方法是在排序后找到中间数,但最佳的时间复杂度是O(nlogn)。因此,用一个简单的方法来求解这两个变量,从第一个数字开始,将第一个数字记录为result Initialize times=1,然后只需找到与结果相等的数字rimes,否则times——当times等于0时,将结果改为当前数字,然后继续搜索
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。