目录
- 题目
- 1- 思路
- 2- 实现
- ⭐169. 多数元素——题解思路
- 3- ACM 实现
题目
- 原题连接:169. 多数元素
1- 思路
- 定义两个变量
- 一个是
count
:维护当前元素的出现次数 - 一个是
ret
:维护当前元素
- 一个是
思路
- 遍历整个数组
- **①如果
count = 0
**:ret = i
,ret 赋值为当前遍历到的元素,且count=1
- ②如果
ret == i
:此时count++
- **③如果 **
ret != i
:此时count--
2- 实现
⭐169. 多数元素——题解思路
class Solution {
public int majorityElement(int[] nums) {
int count = 0;
int candidate = 0;
for(int num:nums){
if(count==0){
candidate = num;
}
count += (num == candidate) ? 1 : -1;
}
return candidate;
}
}
3- ACM 实现
public class majorityElement {
public static int majorE(int[] nums){
int candidate = 0;
int count = 0;
for(int num : nums){
if(count==0){
candidate = num;
}
count += (candidate==num) ?1:-1;
}
return candidate;
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("输入数组长度");
int n = sc.nextInt();
int[] nums = new int[n];
for (int i = 0 ; i < n;i++){
nums[i] = sc.nextInt();
}
System.out.println("结果是"+majorE(nums));
}
}