常见算法题之主元素问题
问题描述
在一个数组中,如果有一个数出现的次数超过了一半以上,则称这个数是这个数组的主元素,相反,如果没有哪个数超过一半,则称这个数组没有主元素。
求一个给定数组,如 [1,3,2,1,6,2,2,2,2,0,2,2] 中是否有主元素,有的话求出它。思路
- 一开始拿到这道题,可能想的就是拿着每个数字跟后面的一个一个比嘛,然后求出每种元素的个数,看最多的那个是否超过 n / 2。但这样做的效果不太好,时间复杂度为 O(n^2)。
待续
问题描述
在一个数组中,如果有一个数出现的次数超过了一半以上,则称这个数是这个数组的主元素,相反,如果没有哪个数超过一半,则称这个数组没有主元素。
求一个给定数组,如 [1,3,2,1,6,2,2,2,2,0,2,2] 中是否有主元素,有的话求出它。
思路
- 一开始拿到这道题,可能想的就是拿着每个数字跟后面的一个一个比嘛,然后求出每种元素的个数,看最多的那个是否超过 n / 2。但这样做的效果不太好,时间复杂度为 O(n^2)。
待续