leetcode 第168场周赛

5291. 统计位数为偶数的数字

给你一个整数数组 nums,请你返回其中位数为 偶数 的数字的个数。

范围比较小 只有三种位数,所以暴力统计

class Solution(object):
    def findNumbers(self, nums):
        """
        :type nums: List[int]
        :rtype: int
        """
        ans = 0
        chk = [10,1000,100000]
        for i in nums:
            for j in chk:
                tmp = i//j
                if tmp>=1 and tmp<=9:
                    ans+=1
                    break
        return ans

5292. 划分数组为连续数字的集合

给你一个整数数组 nums 和一个正整数 k,请你判断是否可以把这个数组划分成一些由 k 个连续数字组成的集合。
如果可以,请返回 True;否则,返回 False。

也是暴力统计的题目,可行集合必然可以分割,我们模拟分割的过程,如果不能分割说明集合不可行

class Solution(object):
    def isPossibleDivide(self, nums, k):
        """
        :type nums: List[int]
        :type k: int
        :rtype: bool
        """
        if len(nums)%k != 0:
            return False
        mp = {}
        for i in nums:
            mp[i] = mp.get(i,0)+1
        keys = mp.keys()
        keys.sort()
        for i in keys:
            tmp = mp[i]
            if tmp:
                for j in range(i,i+k):
                    if mp.get(j,0)>=tmp:
                        mp[j]-=tmp
                    else:
                        return False
        for i in keys:
            if mp[i] != 0:
                return False
        return True

5293. 子串的最大出现次数

给你一个字符串 s ,请你返回满足以下条件且出现次数最大的 任意 子串的出现次数:

  • 子串中不同字母的数目必须小于等于 maxLetters 。
  • 子串的长度必须大于等于 minSize 且小于等于 maxSize 。

题意比较恶心,我的做法就是暴力统计,因为maxSize 只有26

class Solution(object):
    def maxFreq(self, s, maxLetters, minSize, maxSize):
        """
        :type s: str
        :type maxLetters: int
        :type minSize: int
        :type maxSize: int
        :rtype: int
        """
        ans = 0
        mp = {}
        for i in range(0,len(s)-minSize+1):
            cnt = [0]*300
            tmpcnt = 0
            tmpstr = ""
            for j in range(0,minSize-1): # i ~ i+minSize-2
                cnt[ord(s[i+j])]+=1
                if cnt[ord(s[i+j])] == 1:
                    tmpcnt+=1
                tmpstr += s[i+j]
            for j in range(minSize-1,maxSize):# i ~ i+maxSize-1
                if i+j>=len(s):
                    break
                cnt[ord(s[i+j])]+=1
                if cnt[ord(s[i+j])] == 1:
                    tmpcnt+=1
                tmpstr += s[i+j]
                if tmpcnt <= maxLetters:
                    mp[tmpstr] = mp.get(tmpstr,0)+1
                    ans = max(ans,mp[tmpstr])
                else:
                    break
        return ans

5294. 你能从盒子里获得的最大糖果数

给你 n 个盒子,每个盒子的格式为 [status, candies, keys, containedBoxes] ,其中:

  • 状态字 status[i]:整数,如果 box[i] 是开的,那么是 1 ,否则是 0 。
  • 糖果数 candies[i]: 整数,表示 box[i] 中糖果的数目。
  • 钥匙 keys[i]:数组,表示你打开 box[i] 后,可以得到一些盒子的钥匙,每个元素分别为该钥匙对应盒子的下标。
  • 内含的盒子 containedBoxes[i]:整数,表示放在 box[i] 里的盒子所对应的下标。
    给你一个 initialBoxes 数组,表示你现在得到的盒子,你可以获得里面的糖果,也可以用盒子里的钥匙打开新的盒子,还可以继续探索从这个盒子里找到的其他盒子。

请你按照上述规则,返回可以获得糖果的 最大数目 。

很显然可以搜索,从初始化的盒子集合开始处理,无法处理的就留着,打开的盒子就拿走糖果,获得新盒子和钥匙,然后再从现有盒子处理重复这个过程
特殊情况下,部分盒子没法打开,如果我们发现某次钥匙且盒子没有更新我们就不再继续处理

class Solution(object):
    def maxCandies(self, status, candies, keys, containedBoxes, initialBoxes):
        """
        :type status: List[int]
        :type candies: List[int]
        :type keys: List[List[int]]
        :type containedBoxes: List[List[int]]
        :type initialBoxes: List[int]
        :rtype: int
        """
        vis = [0]*1010
        def dfs(ownedboxs,ownedkeys):
            tmpans = 0
            if ownedboxs:
                mark = False
                tmpboxs = []
                for j in ownedboxs:
                    if vis[j]:
                        continue
                    if status[j] or j in ownedkeys:
                        vis[j] = 1
                        tmpans += candies[j]
                        ownedkeys.extend(keys[j])
                        tmpboxs.extend(containedBoxes[j])
                        mark = True
                    else:
                        tmpboxs.append(j)
                if mark:
                    return tmpans + dfs(tmpboxs,ownedkeys)
            return tmpans
        return dfs(initialBoxes,[])
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,591评论 6 501
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,448评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,823评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,204评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,228评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,190评论 1 299
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,078评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,923评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,334评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,550评论 2 333
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,727评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,428评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,022评论 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,672评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,826评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,734评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,619评论 2 354

推荐阅读更多精彩内容

  • HTML 5 HTML5概述 因特网上的信息是以网页的形式展示给用户的,因此网页是网络信息传递的载体。网页文件是用...
    阿啊阿吖丁阅读 3,887评论 0 0
  • 在C语言中,五种基本数据类型存储空间长度的排列顺序是: A)char B)char=int<=float C)ch...
    夏天再来阅读 3,340评论 0 2
  • 一、基础知识:1、JVM、JRE和JDK的区别:JVM(Java Virtual Machine):java虚拟机...
    杀小贼阅读 2,378评论 0 4
  • 941. 有效的山脉数组 题目难度Easy 给定一个整数数组 A,如果它是有效的山脉数组就返回 true,否则返回...
    独孤岳阅读 498评论 0 0
  • 《对罗胖跨年演讲的小结》 碌碌无为的平头老百姓,想做点事情,有机会吗?按罗胖的看法,一切都还不晚,因为时间是有的,...
    朵朵云白阅读 174评论 0 0