国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

[LeetCode周賽復盤] 第 348場周賽20230604

這篇具有很好參考價值的文章主要介紹了[LeetCode周賽復盤] 第 348場周賽20230604。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

一、本周周賽總結

  • 這場可惜了。
  • T1 模擬。
  • T2 模擬。
  • T3 倒序計算。
  • T4 同時限制上下界的數位DP。
    [LeetCode周賽復盤] 第 348場周賽20230604

6462. 最小化字符串長度

6462. 最小化字符串長度

1. 題目描述

[LeetCode周賽復盤] 第 348場周賽20230604

2. 思路分析

題意仔細想一下就會發(fā)現,其實會將每個字符僅留1個。

3. 代碼實現

class Solution:
    def minimizedStringLength(self, s: str) -> int:
        return  len(set(s))

6424. 半有序排列

6424. 半有序排列

1. 題目描述

[LeetCode周賽復盤] 第 348場周賽20230604

2. 思路分析

  • 由于只能相鄰交換來移動,因此每次只能移動1步。
  • 那么分別找到1和n的位置,計算他們移動距離。
    • 額外的,若1在n的右邊,移動路徑交叉,那么可以1向左時,n會免費向右一下,因此答案-1。

3. 代碼實現

class Solution:
    def semiOrderedPermutation(self, a: List[int]) -> int:
        n = len(a)
        x,y = a.index(1),a.index(n)
        return x + n-y-1-(x>y)
     

6472. 查詢后矩陣的和

6472. 查詢后矩陣的和

1. 題目描述

[LeetCode周賽復盤] 第 348場周賽20230604

2. 思路分析

你就記住,最小化最大值=二分、覆蓋求整體=逆序
  • 逆序處理后,每次格子的貢獻是確定的,只需要記錄每次操作有多少個格子被修改即可。
  • 那么用哈希表儲存已被修改的行/列,若這行/列已被改過,那這次操作可以跳過。
    • 否則記錄操作這行時,有多少個空位。即 n - len(ys)。

3. 代碼實現

class Solution:
    def matrixSumQueries(self, n: int, queries: List[List[int]]) -> int:
        ans = 0
        xs = set()
        ys = set()
        for t,i,val in queries[::-1]:          
            if t == 0:
                if i not in xs:
                    ans += val * (n-len(ys))
                    xs.add(i)                 
            else:
                if i not in ys:
                    ans += val *(n-len(xs))
                    ys.add(i)
        return ans

6396. 統(tǒng)計整數數目

6396. 統(tǒng)計整數數目

1. 題目描述

[LeetCode周賽復盤] 第 348場周賽20230604文章來源地址http://www.zghlxwxcb.cn/news/detail-475012.html

2. 思路分析

  • 套數位DP板子即可,這題同時限制了上下界,那么不用考慮前邊填沒填數的事(省去is_num參數)。
  • 除了上下界限制,同時傳一個s作為數字求和進去。當i遍歷到n時,判斷方案是否合法,返回1/0。
  • 另外中途s已經超過上限的話可以提前退出。

  • 參見[python刷題模板] 數位DP
  • 加餐,同時限制上下界的數位dp1742. 盒子中小球的最大數量

3. 代碼實現

MOD = 10**9 + 7
class Solution:
    def count(self, num1: str, num2: str, min_sum: int, max_sum: int) -> int:
        m,n = len(num1),len(num2)
        num1 = '0'*(n-m) + num1
        @cache
        def f(i,s,up_limit,down_limit):
            if i == n:
                if   min_sum<=s<=max_sum:
                    return 1
                else:
                    return 0
            if s > max_sum:
                return 0
            up = int(num2[i]) if up_limit else 9 
            down = int(num1[i]) if down_limit else 0 
            ans = 0
            
            for j in range(down,up+1):
                ans += f(i+1,s+j,up_limit and j==up,down_limit and j == down)
                ans %= MOD 
            return ans 
        return f(0,0,True,True)                       

參考鏈接

到了這里,關于[LeetCode周賽復盤] 第 348場周賽20230604的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • 【LeetCode周賽】LeetCode第370場周賽

    【LeetCode周賽】LeetCode第370場周賽

    一場比賽中共有 n 支隊伍,按從 0 到 n - 1 編號。 給你一個下標從 0 開始、大小為 n * n 的二維布爾矩陣 grid 。對于滿足 0 = i, j = n - 1 且 i != j 的所有 i, j :如果 grid[i][j] == 1,那么 i 隊比 j 隊 強 ;否則,j 隊比 i 隊 強 。 在這場比賽中,如果不存在某支強于 a 隊的隊伍,則認為

    2024年02月05日
    瀏覽(18)
  • LeetCode 周賽 348(2023/06/05)數位 DP 模板學會了嗎

    本文已收錄到 AndroidFamily,技術和職場問題,請關注公眾號 [彭旭銳] 加入知識星球提問! 往期回顧:LeetCode 單周賽第 347 場 · 二維空間上的 LIS 最長遞增子序列問題 T1. 最小化字符串長度(Medium) 標簽:散列表、計數 T2. 半有序排列(Easy) 標簽:散列表 T3. 查詢后矩陣的和(

    2024年02月07日
    瀏覽(65)
  • leetcode 第360場周賽

    好久沒參加leetcode周賽了,比賽時間都從兩小時變成了一個半小時。這次周賽由兩道簽到題和兩道中等難度題組成,嚴格來說最后一道的難度也可以視為hard,但是只要想到正確的思路,編碼還是比較容易的。 比賽鏈接:leetcode 第 360 場周賽 題目描述 給你一個長度為 n 的字符串

    2024年02月11日
    瀏覽(25)
  • LeetCode第354場周賽

    給你一個下標從 1 開始、長度為 n 的整數數組 nums 。 對 nums 中的元素 nums[i] 而言,如果 n 能夠被 i 整除,即 n % i == 0 ,則認為 num[i] 是一個 特殊元素 。 返回 nums 中所有 特殊元素 的 平方和 。 直接模擬就好了 給你一個下標從 0 開始的整數數組 nums 和一個 非負 整數 k 。 在一

    2024年02月16日
    瀏覽(28)
  • LeetCode第347場周賽

    2023.5.28LeetCode第347場周賽 從最后一位開始遍歷,為0則跳過 暴力模擬 對于每個 s[i] != s[i - 1] ,要使其相等 有兩種選擇,翻轉前 i 個,或者翻轉后 n - i 個,選擇代價最小的方案 動態(tài)規(guī)劃 從小到大枚舉所有值,每個值一定是從更小的數轉移而來 定義動態(tài)規(guī)劃數組f, f[i][j] 表示

    2024年02月06日
    瀏覽(18)
  • LeetCode第343場周賽

    2023.4.30LeetCode第343場周賽 根據題意模擬 使用哈希表記錄每個數出現的位置,再用m+n個集合記錄每一行和每一列被涂滿的格子數,若某行或某列全部被涂滿則返回答案 BFS 首先將距離大于兩點的曼哈頓距離的特殊路徑去掉 每個點考慮經過每個特殊路徑到達,分成兩段,一段是當

    2024年02月02日
    瀏覽(23)
  • leetcode第 357/358 場周賽

    可能別人有更好的解法,我這寫法是不斷往線段樹中插入數值,每次先插入nums[i-x],然后搜索(1到i)中的最大值和(i到max)中的最小值去更新ans。 看了看別人題解,直接用set寫是真的牛。自己還是見識短淺了。 暴力亂搞,考慮兩種極端情況,一種無腦選profit大的,一種優(yōu)先選

    2024年02月12日
    瀏覽(19)
  • leetcode第354場周賽補題

    6889. 特殊元素平方和 - 力扣(LeetCode) 思路:模擬 6929. 數組的最大美麗值 - 力扣(LeetCode) 思路:排序+雙指針 6927. 合法分割的最小下標 - 力扣(LeetCode) 思路:哈希+枚舉 6924. 最長合法子字符串的長度 - 力扣(LeetCode) 思路:哈希+雙指針

    2024年02月16日
    瀏覽(19)
  • Leetcode 第 365 場周賽題解

    Leetcode 第 365 場周賽題解

    思路 暴力。 代碼 復雜度分析 時間復雜度:O(n 3 ),其中 n 是數組 nums 的長度。 空間復雜度:O(1)。 思路 枚舉 k,我們需要知道 k 左邊 nums[i]?nums[j] 的最大值。 使用 pre_max 維護 k 之前的 nums[i] 的最大值,使用 max_diff 維護 nums[i]?nums[j] 的最大值。 每次遍歷一個 nums[i],都更新

    2024年02月07日
    瀏覽(17)
  • LeetCode 第385場周賽個人題解

    目錄 100212. 統(tǒng)計前后綴下標對 I 原題鏈接 題目描述 接口描述 思路分析 代碼詳解 100229. 最長公共前綴的長度 原題鏈接 題目描述 接口描述 思路分析 代碼詳解 100217. 出現頻率最高的素數 原題鏈接 題目描述 接口描述 思路分析 代碼詳解 100212. 統(tǒng)計前后綴下標對 II 原題鏈接 題目

    2024年02月19日
    瀏覽(31)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包