LeetCode题解(1169):依据指定条件查询无效交易(Python)
发布日期:2021-06-29 19:58:25 浏览次数:3 分类:技术文章

本文共 1284 字,大约阅读时间需要 4 分钟。

题目:(中等)

标签:字符串、哈希表

解法 时间复杂度 空间复杂度 执行用时
Ans 1 (Python) O ( N l o g N ) O(NlogN) O(NlogN) O ( N ) O(N) O(N) 116ms (53.00%)
Ans 2 (Python)
Ans 3 (Python)

解法一(哈希表):

class Solution:    def invalidTransactions(self, transactions: List[str]) -> List[str]:        # 依据人名重新分组交易记录        # 时间复杂度:O(N)        transactions_by_name = collections.defaultdict(list)        for transaction in transactions:            name, time, money, city = transaction.split(",")            transactions_by_name[name].append((int(time), city, int(money)))        ans = set()        # 依据各组人名分别排序并检查记录        for name, transactions in transactions_by_name.items():            transactions.sort()            for i in range(len(transactions)):                time1, city1, money1 = transactions[i]                if money1 > 1000:                    ans.add(",".join([name, str(time1), str(money1), city1]))                for j in range(i + 1, len(transactions)):                    time2, city2, money2 = transactions[j]                    if time2 - time1 > 60:                        break                    if city1 != city2:                        ans.add(",".join([name, str(time1), str(money1), city1]))                        ans.add(",".join([name, str(time2), str(money2), city2]))        return list(ans)

转载地址:https://dataartist.blog.csdn.net/article/details/108098008 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:LeetCode题解(1177):通过替换字母能够构建的回文串检测(Python)
下一篇:LeetCode题解(1163):按字典序排在最后的子串(Python)

发表评论

最新留言

网站不错 人气很旺了 加油
[***.192.178.218]2024年04月30日 07时03分27秒