文章
40
粉丝
0
获赞
7
访问
3.8k
(1) 设置一个长度为n的数组B,B[i]代表值为i的元素个数,遍历一遍A并统计每一个值的数量,当某个值数量超过n/2时,便返回该元素;若统计完成依旧没有输出主元素,则返回-1。
(2) 使用Java,代码如下:
public int solution(int[] A, int n) {
int[] B = new int[n];
for (int i = 0; i < A.length; i++) {
B[A[i]]++; // 元素值为A[i],那么对应的统计数量就+1
if (B[A[i]] > n / 2) {
return A[i]; 当某个值数量超过n/2时,便返回该元素
}
}
return -1; // 统计完成依旧没有输出主元素,则返回-1
}
(3) 时间复杂度:O(n),空间复杂度:O(n)
登录后发布评论
暂无评论,来抢沙发