From 9da60df948102cb42bffb2f5b74b68c1d5d872ed Mon Sep 17 00:00:00 2001 From: ITCharge Date: Sat, 21 Sep 2024 23:19:39 +0800 Subject: [PATCH] =?UTF-8?q?Update=200169.=20=E5=A4=9A=E6=95=B0=E5=85=83?= =?UTF-8?q?=E7=B4=A0.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...44\232\346\225\260\345\205\203\347\264\240.md" | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git "a/Solutions/0169. \345\244\232\346\225\260\345\205\203\347\264\240.md" "b/Solutions/0169. \345\244\232\346\225\260\345\205\203\347\264\240.md" index ed7e248c..ef914efc 100644 --- "a/Solutions/0169. \345\244\232\346\225\260\345\205\203\347\264\240.md" +++ "b/Solutions/0169. \345\244\232\346\225\260\345\205\203\347\264\240.md" @@ -9,14 +9,15 @@ ## 题目大意 -**描述**:给定一个大小为 $n$ 的数组 `nums`。 +**描述**:给定一个大小为 $n$ 的数组 $nums$。 -**要求**:返回其中相同元素个数最多的元素。 +**要求**:返回其中的多数元素。 **说明**: +- **多数元素**:指在数组中出现次数大于 $\lfloor \frac{n}{2} \rfloor$ 的元素。 - $n == nums.length$。 -- $1 \le n \le 5 * 10^4$。 +- $1 \le n \le 5 \times 10^4$。 - $-10^9 \le nums[i] \le 10^9$。 **示例**: @@ -39,8 +40,8 @@ ### 思路 1:哈希表 -1. 遍历数组 `nums`。 -2. 对于当前元素 `num`,用哈希表统计每个元素 `num` 出现的次数。 +1. 遍历数组 $nums$。 +2. 对于当前元素 $num$,用哈希表统计每个元素 $num$ 出现的次数。 3. 再遍历一遍哈希表,找出元素个数最多的元素即可。 ### 思路 1:代码 @@ -70,11 +71,11 @@ class Solution: ### 思路 2:分治算法 -如果 `num` 是数组 `nums` 的众数,那么我们将 `nums` 分为两部分,则 `num` 至少是其中一部分的众数。 +如果 $num$ 是数组 $nums$ 的众数,那么我们将 $nums$ 分为两部分,则 $num$ 至少是其中一部分的众数。 则我们可以用分治法来解决这个问题。具体步骤如下: -1. 将数组 `nums` 递归地将当前序列平均分成左右两个数组,直到所有子数组长度为 `1`。 +1. 将数组 $nums$ 递归地将当前序列平均分成左右两个数组,直到所有子数组长度为 $1$。 2. 长度为 $1$ 的子数组众数肯定是数组中唯一的数,将其返回即可。 3. 将两个子数组依次向上两两合并。 1. 如果两个子数组的众数相同,则说明合并后的数组众数为:两个子数组的众数。