Hot100刷题
Hot100刷题
【技巧】
136. 只出现一次的数字
给你一个 非空 整数数组 nums ,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。
你必须设计并实现线性时间复杂度的算法来解决此问题,且该算法只使用常量额外空间。
【思考】
- 数字异或自身,结果是0
【代码】
1 | |
169. 多数元素
给定一个大小为 n 的数组 nums ,返回其中的多数元素。多数元素是指在数组中出现次数 大于 ⌊ n/2 ⌋ 的元素。
你可以假设数组是非空的,并且给定的数组总是存在多数元素。
尝试设计时间复杂度为 O(n)、空间复杂度为 O(1) 的算法解决此问题。
【思考】
- 众数数量大于n/2,划分两类,众数/非众数,投票来决出多数。
- 需要记录两个元素:众数、票数
【代码】
1 | |
75. 颜色分类
给定一个包含红色、白色和蓝色、共 n 个元素的数组 nums ,**原地** 对它们进行排序,使得相同颜色的元素相邻,并按照红色、白色、蓝色顺序排列。
我们使用整数 0、 1 和 2 分别表示红色、白色和蓝色。
必须在不使用库内置的 sort 函数的情况下解决这个问题。
【思考】
- 模拟取出球,放到对应位置的行为。
- 需要记录红、白、蓝球的边界。
1 | |
Hot100刷题
https://wengerblogs.me/2025/05/13/Hot100刷题/