通过投票对团队排名
通过投票对团队排名(medium)
做题过程
感觉又要用堆又要用哈希表的很麻烦,没想到简便思路。
算法概述
本题要求为给出字符串数组用于表示投票结果,然后根据字符串中的名次以及该名次的出现次数决定最终结果。使用 哈希表 存储每个排名对象的名次。
- 时间复杂度为
:填充哈希表的时间和排序(排序+比较)的时间 - 空间复杂度为
JAVA
1 | class Solution { |
总结
主要是用到了一下几个数据结构,比较重要,组织好数据结构也需要深入思考:
Map<Character, int[]> ranking = new HashMap<>();
:用int[]
作为值,我只想到了用整数以及哈希数组,这样就可以完整存储所有排序对象的排名结果了List<Map.Entry<Character, int[]>> result = new ArrayList<>(ranking.entrySet());
:用List
变长数组存储Map.Entry
元素,而不是直接遍历,这样可以快速用数组的自定义排序器进行排序
- Title: 通过投票对团队排名
- Author: tobegold574
- Created at : 2024-12-29 10:09:38
- Updated at : 2024-12-29 14:27:17
- Link: https://tobegold574.me/2024/12/29/通过投票对团队排名/
- License: This work is licensed under CC BY-NC-SA 4.0.
Comments