双11狂欢大促

盲盒赢 定制羽绒服

开启惊喜盲盒,抽取你的专属好礼

— 惊喜奖品抢先看 —

2.07打卡

FaReWElLeRi FaReWElLeRi 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区

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

 

 

...全文

相关推荐

评论
收藏 已收藏
分享
返回顶部