You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

LeetCode 1366:团队排名解法的时间/空间复杂度分析疑问

LeetCode 1366 团队排名:时间/空间复杂度分析疑问

我已经解决了LeetCode 1366(团队排名)问题,但没法准确估算它的时间/空间复杂度。查看题解区后发现答案不一致,对此有疑问。以下是我的代码和算法思路:

class Solution:
    def rankTeams(self, votes: List[str]) -> str:
        rankings = {}
        team_count = len(votes[0])
        for vote in votes: 
            for position, team in enumerate(vote): 
                if team not in rankings:
                    rankings[team] = [0 for _ in range(team_count)]
                rankings[team][position] += 1
        alphabetically_ordered_teams = sorted(rankings.keys()) 
        final_ranking = sorted(alphabetically_ordered_teams, key = lambda team : rankings[team], reverse=True)
        return ''.join(final_ranking)

算法思路

  1. 遍历投票数组,构建哈希表:每个团队对应一个数组,数组第i位代表该团队在第i顺位获得的票数;
  2. 将哈希表的键按字母顺序排序;
  3. 以哈希表中的数组为排序依据,对字母顺序的团队列表进行降序排序(平局时按字母顺序),最后拼接成结果字符串。

我的复杂度分析(存疑)

我认为时间复杂度为O(N),空间复杂度为O(1),但不确定是否正确:

  • 遍历投票数组的时间为O(N26),题目限制每个投票字符串长度≤26(小写字母),属于常数项*;
  • 哈希表键的排序是O(1),因为最多只有26个键;
  • 最终排序操作中,比较数组元素的时间最多为O(26²),整体排序复杂度为O(26log2626²),可简化为常数项*;
  • 综上总时间复杂度为O(N),空间复杂度O(1)。

请问我的分析是否错误?


内容的提问来源于stack exchange,提问作者1sentenced

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 12:40:32