博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【Leetcode第215场周赛】score:7 Time: 1:20:24 Rank:1774/4428
阅读量:255 次
发布时间:2019-03-01

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

第一题是设计题本来打算放到最后做的,结果第三题死活没过,所以最后的得分和排名都很低(还是太菜了)

5601. 设计有序流(3分,通过率:2402/3184)

在这里插入图片描述

class OrderedStream:    def __init__(self, n: int):        self.n = n        self.ptr = 1        self.List = [ 0 for i in range(n+1)]    def insert(self, id: int, value: str) -> List[str]:        self.List[id] = value        ans = []        if self.ptr == id :            while self.ptr <= self.n and self.List[self.ptr] != 0 :                ans.append(self.List[self.ptr])                self.ptr += 1            return ans        else:            return []

5603. 确定两个字符串是否接近(4分,通过率:2078/4952)

在这里插入图片描述
思路:①如果两个字符有同样的出现字符
②出现的次数对应相等
③满足以上两个条件时返回True,否则返回False

class Solution:    def closeStrings(self, word1: str, word2: str) -> bool:        c1 = collections.Counter(word1)        c2 = collections.Counter(word2)        l1 = list(c1.values())        l2 = list(c2.values())        l1.sort()        l2.sort()                s1 = set(word1)        s2 = set(word2)        return l1 == l2 and s1 == s2

5602. 将 x 减到 0 的最小操作数(5分,通过率:871/6035)

尝试着使用搜索回溯做,但是会超时

尝试使用前缀和+哈希减少回溯深度,仍超时

class Solution:    def minOperations(self, nums: List[int], x: int) -> int:        len_ = len(nums)        l,r = {
},{
} cl,cr = 0,0 for i in range(len_): cl += nums[i] if cl <= x: l[cl] = i+1 else: break for i in range(len_-1,-1,-1): cr += nums[i] if cr <= x: r[cr] = len_-i else: break

在题解里看到一个大佬的思路,和我第二个思路相似,但是他将哈希表的key和value倒了一下,这样节省了很多查询的时间

class Solution:    def minOperations(self, nums: List[int], x: int) -> int:        len_ = len(nums)        l,r = {
},{
} cl,cr = 0,0 for i in range(len_): cl += nums[i] if cl <= x: l[cl] = i+1 else: break for i in range(len_-1,-1,-1): cr += nums[i] if cr <= x: r[cr] = len_-i else: break min_ = float('inf') if x in l: min_ = min(min_,l[x]) if x in r: min_ = min(min_,r[x]) for l_ in l: if x-l_ in r: min_ = min(min_,l[l_]+r[x-l_]) return -1 if min_ > len_ else min_

5604. 最大化网格幸福感(6分,通过率:57/576)

最后一题我放弃了…太难了

转载地址:http://nhba.baihongyu.com/

你可能感兴趣的文章