LeetCode 0169
Less than 1 minute
0169. Majority Element
- Thẻ: Mảng, Bảng băm, Phân chia, Đếm, Sắp xếp
- Độ khó: Dễ
Tóm tắt bài toán
Mô tả: Cho một mảng nums
có kích thước .
Yêu cầu: Trả về phần tử xuất hiện nhiều nhất trong mảng.
Chú ý:
- .
- .
- .
Ví dụ:
- Ví dụ 1:
Input: nums = [3,2,3]
Output: 3
- Ví dụ 2:
Input: nums = [2,2,1,1,1,2,2]
Output: 2
Ý tưởng giải quyết
Ý tưởng 1: Bảng băm
- Duyệt qua mảng
nums
. - Đối với mỗi phần tử
num
, sử dụng bảng băm để đếm số lần xuất hiện của từng phần tử. - Duyệt qua bảng băm, tìm phần tử có số lần xuất hiện nhiều nhất.
Ý tưởng 1: Mã giả
class Solution:
def majorityElement(self, nums: List[int]) -> int:
numDict = dict()
for num in nums:
if num in numDict:
numDict[num] += 1
else:
numDict[num] = 1
max = float('-inf')
max_index = -1
for num in numDict:
if numDict[num] > max:
max = numDict[num]
max_index = num
return max_index
Ý tưởng 1: Phân tích độ phức tạp
- Độ phức tạp thời gian: .
- Độ phức tạp không gian: .