首页 > 其他分享 >第 375 场周赛(滑动窗口,区间合并)

第 375 场周赛(滑动窗口,区间合并)

时间:2023-12-10 22:55:08浏览次数:42  
标签:周赛 cnt nums int max List diff 滑动 375

 使用差分的思想进行解决

class Solution:
    def countTestedDevices(self, batteryPercentages: List[int]) -> int:
        diff = 0
        for x in batteryPercentages:
            if x > diff:
                diff += 1
        return diff

 

 

 

 

class Solution:
    def getGoodIndices(self, variables: List[List[int]], target: int) -> List[int]:
        return [i for i, (a, b, c, m) in enumerate(variables)
                if pow(pow(a, b, 10), c, m) == target]

 

这两题比较简单,我也是赛后看了灵神的代码,实在是太优雅了,贴在这里以后看一看。

 

 第三题仍然是滑动窗口,也是在 这次周赛和双周赛后从灵神题解中学到的写法,极其优雅。

class Solution:
    def countSubarrays(self, nums: List[int], k: int) -> int:
        n = len(nums)
        mx = max(nums)
        cnt = 0
        res = left = 0
        for v in nums:
            if v == mx:
                cnt += 1
            while cnt >= k:
                if nums[left] == mx:
                    cnt -= 1
                left += 1
            res += left
        
        return res

 

 

class Solution:
    def numberOfGoodPartitions(self, nums: List[int]) -> int:
        r = {}
        for i, x in enumerate(nums):
            r[x] = i
        
        m = max_r = 0
        for i, x in enumerate(nums):
            max_r = max(max_r, r[x])
            if max_r == i:
                m += 1
        
        return pow(2, m - 1, 10**9 + 7)

 

标签:周赛,cnt,nums,int,max,List,diff,滑动,375
From: https://www.cnblogs.com/zk6696/p/17893422.html

相关文章

  • 滑动窗口模型
    指针的本质是映射,使用一个地址保留我们想知道的东西。滑动窗口是双指针思想的一种实现,使用l,r两个指针来维护一个数组的子序列。滑动窗口问题可以分为两类,一类是固定大小的滑动窗口,一类是变长滑动窗口。 定长滑动窗口:求区间最大不定长滑动窗口:求最长,最短,子数组个数。 ......
  • js 默认展示两行多余隐藏滑动及添加滑动条
    <divclass="nav-box"@scroll="scroll"><divfor="list"class="nav"><divclass="item-box">item</div></div></div><divclass="scroll-box"v-show=&q......
  • uniapp滑动页面时警告Unable to preventDefault inside passive event listener due t
    翻译:没有添加被动事件监听器来阻止’touchstart‘事件,请考虑添加事件管理者’passive’,以使页面更加流畅。原因:由于浏览器必须要在执行事件处理函数之后,才能知道有没有掉用过 preventDefault(),这就导致了浏览器不能及时响应滚动,略有延迟。所以为了让页面滚动的效果如丝般顺滑......
  • AcWing 154. 滑动窗口
    题面:给定一个大小为\(n≤10^6\)的数组。有一个大小为\(k\)的滑动窗口,它从数组的最左边移动到最右边。你只能在窗口中看到\(k\)个数字。每次滑动窗口向右移动一个位置。你的任务是确定滑动窗口位于每个位置时,窗口中的最大值和最小值。原题链接:154.滑动窗口-AcWing......
  • Acwing第132场周赛
    AcWing5366.大小写转换#include<bits/stdc++.h>#definelsp<<1#definersp<<1|1#definePIIpair<int,int>#definelllonglong#definedbdouble#defineullunsignedlonglong#defineendl'\n'#defineioios::sync_with_......
  • 第 132 场周赛——质数小结论,并查集配Floyd
    https://www.acwing.com/activity/content/competition/problem_list/3648/B题收获:1.利用题目告诉的结论:1e9范围质数之差小于3002.一个数不被2-a的任何数整除等价于他的最小质因子需要大于ac题:初步宏观思路:不难想到用并查集维护类别,只需将每一个类缩成一个点,由于最多只有500......
  • 每日一题+周赛总结
    每日一题+周赛总结2023.12周一周二周三周四周五周六周日[[12.2]差分数组](#12.2)[[12.3]滑动窗口](#12.3)周赛12.2一维差分数组1094.拼车区域性数字的加减,判断总体是否合法回忆一下二维差分数组12.3前......
  • Acwing.第132场周赛
    Acwing.第132场周赛比赛地址A.大小写转换题目思路:简单的模拟,可以使用c++大小写转换库函数,但是由于我早上比赛时候没用好就不敢用了就用了ASCII码转换代码:#include<bits/stdc++.h>usingnamespacestd;voidsolve(){ strings; cin>>s; for(inti=0;i<s.size();i++)......
  • 《力扣面试150题》题单拓展——滑动窗口
    《力扣面试150题》题单拓展——滑动窗口1.基础知识先区分好,枚举右端点,还是左端点,窗口内的条件改变后,一般都是while控制另一个窗口的移动,然后收集结算我感觉滑动窗口这里变动最大的,什么时候去滑动左窗口,什么时候去收集答案,都很不一样,得慢慢体会滑动窗口难题是真的难,呜呜呜呜......
  • 【滑动窗口】无重复字符的最长字串、找到字符串中所有字母异位词、串联所有单词的子串
    一、无重复字符的最长子串题目描述定一个字符串s,请你找出其中不含有重复字符的最长子串的长度。题目链接:无重复字符的最长子串示例1:输入:s="abcabcbb"输出:3解释:因为无重复字符的最长子串是"abc",所以其长度为3。示例2:输入:s="bbbbb"输出:1解释:因......