算法打卡第12天|多数元素
题目链接:https://leetcode.cn/problems/majority-element/
学习视频:【【力扣hot100】【LeetCode 169】多数元素-哔哩哔哩】 https://b23.tv/qVi0gBx
【【力扣hot100】【LeetCode 169】多数元素-哔哩哔哩】 https://b23.tv/eIIjHvi
官方题解:https://leetcode.cn/problems/majority-element/solutions/146074/duo-shu-yuan-su-by-leetcode-solution/
看到题目第一想法:
题目要找出现次数超过数组一半的元素。最直接的思路就是统计每个数出现多少次,次数最多的那个就是结果,用哈希表存计数最方便。
遇到的困难
1. 不熟悉Java的HashMap增删遍历语法,写计数逻辑时经常出错
2. 遍历Map找最大值的代码一开始写不对
3. 一开始没想到还有更省空间的做法
解题收获
1. 学会用HashMap快速统计元素频次,时间复杂度O(n),简单好理解
2. 掌握了Java中Map的创建、遍历、取值的基础用法
3. 知道了本题进阶还有摩尔投票法,可以做到O(n)时间+O(1)额外空间,算法效率更高
4. 养成了先暴力常规解法AC、再优化思路的刷题习惯
