目录
- 题目
- 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));}
}