2.07打卡

算法-刘子函 2024-02-08 19:16:31

leetcode 381周赛

T1&T3.输入单词需要的最小按键次数

哈希表的应用,用哈希表存储出现次数的频率,然后贪心思想就能解决。

class Solution:
    def minimumPushes(self, word: str) -> int:
        cnt = Counter(word)
        arr = list(cnt.values())
        arr.sort()
        arr.reverse()
        return sum(arr[:8])+sum(arr[8:16])*2+sum(arr[16:24])*3+sum(arr[24:26])*4

T2.按距离统计房屋对数目

数据量小,floyd算法

class Solution:
    def countOfPairs(self, n: int, x: int, y: int) -> List[int]:
        res = [0]*n
        dp = [[inf]*(n+1) for _ in range(n+1)]
        dp[1][1] = 0
        for i in range(2,n+1):
            dp[i][i] = 0
            dp[i][i-1] = dp[i-1][i] = 1
        dp[x][y] = dp[y][x] = 1
        def flyd():
            for k in range(1,n+1):
                for i in range(1,n+1):
                    for j in range(1,n+1):
                        dp[i][j] = min(dp[i][j],dp[i][k]+dp[k][j])
        flyd()
        for i in range(1,n+1):
            for j in range(i+1,n+1):
                res[dp[i][j]-1] += 1
                res[dp[j][i]-1] += 1
        return res

 

 

...全文
54 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

264

社区成员

发帖
与我相关
我的任务
社区描述
一个供Leaders学习交流的地方
c++javapython 技术论坛(原bbs) 广东省·深圳市
社区管理员
  • 叫我胡萝北
  • Cheungzzzz
  • szu_gexu
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧