[LeetCode周赛复盘] 第 111 场双周赛20230819

news2025/2/25 10:26:18

[LeetCode周赛复盘] 第 111 场双周赛20230819

    • 一、本周周赛总结
    • 2824. 统计和小于目标的下标对数目
      • 1. 题目描述
      • 2. 思路分析
      • 3. 代码实现
    • 2825. 循环增长使字符串子序列等于另一个字符串
      • 1. 题目描述
      • 2. 思路分析
      • 3. 代码实现
    • 2826. 将三个组排序
      • 1. 题目描述
      • 2. 思路分析
      • 3. 代码实现
    • 2827. 范围中美丽整数的数目
      • 1. 题目描述
      • 2. 思路分析
      • 3. 代码实现
    • 参考链接

一、本周周赛总结

  • T1 对向双指针。
  • T2 子序列/同向双指针。
  • T3 LIS/状态DP。
  • T4 数位DP。
    在这里插入图片描述

2824. 统计和小于目标的下标对数目

2824. 统计和小于目标的下标对数目

1. 题目描述

在这里插入图片描述

2. 思路分析

这里只讨论O(n)做法。
  • 类似两数之和,由于顺序无关,把数据排序。
  • 设置l,r=0,n-1。
  • 若a[l]+a[r]<target,则a[l]+ 任意a[l+1…r]都<target。则这r-l个数都可以和l组队。

3. 代码实现

class Solution:
    def countPairs(self, nums: List[int], target: int) -> int:
        nums.sort()
        ans = left = 0
        right = len(nums) - 1
        while left < right:
            if nums[left] + nums[right] < target:
                ans += right - left
                left += 1
            else:
                right -= 1
        return ans

2825. 循环增长使字符串子序列等于另一个字符串

2825. 循环增长使字符串子序列等于另一个字符串

1. 题目描述

在这里插入图片描述

2. 思路分析

  • 子序列问题,都有个贪心思想:当前能匹配就匹配,匹配不了再看下一个。
  • 一般外层循环更长的那个,代码会好写一些。

3. 代码实现

class Solution:
    def canMakeSubsequence(self, str1: str, str2: str) -> bool:
        n = len(str2)
        j = 0 
        for c in str1:
            if j < n:
                d = ord(c)+1
                if d > ord('z'):
                    d = ord('a')
                if c == str2[j] or chr(d) == str2[j]:
                    j += 1     
        return j == n

2826. 将三个组排序

2826. 将三个组排序

1. 题目描述

在这里插入图片描述

2. 思路分析

  • 本质是LIS,如果k不是3而是更大的1e4,则只能LIS。
  • 状态机DP可以用RMQ来优化,本身也是LIS的另一种做法。

3. 代码实现

class Solution:
    def minimumOperations(self, nums: List[int]) -> int:        
        dp = []
        for v in nums:
            if not dp or v >=dp[-1]:
                dp.append(v)
            else:
                p = bisect_right(dp,v)
                dp[p] = v
        return len(nums)-len(dp)
        # n = len(nums)
        # f = [1]*n 
        # for i in range(1,n):
        #     for j in range(i):
        #         if nums[i] >= nums[j]:
        #             f[i] = max(f[i],f[j]+1)
        # return len(nums) - max(f)                

2827. 范围中美丽整数的数目

2827. 范围中美丽整数的数目

1. 题目描述

在这里插入图片描述

2. 思路分析

 数位DP+前缀和作差
  • 条件有两个:奇数偶数个数相同、被k整除。
  • 第一个条件可以向后传递两个个数。
  • 第二个条件可以用同余向后传递,即(p*10+j)%k
  • 剩下的就是套板子。

  • 注意这里is_num我省略了,因为可以用even和odd来检查。
  • 灵神的写法是不省略is_num,但even和odd压缩成一个diff。差不多。

3. 代码实现

class Solution:
    def numberOfBeautifulIntegers(self, low: int, high: int, k: int) -> int:

        def f(s):
            n = len(s)

            @cache
            def f(i, p, even, odd, is_limit):
                if i == n:
                    return int(even+odd>0 and even == odd and p == 0)
                up = int(s[i]) if is_limit else 9
                down = 0 if even+odd else 1
                ans = 0
                if not even+odd:
                    ans += f(i + 1, 0, 0, 0, False)
                for j in range(down, up + 1):
                    ans += f(i + 1, (p * 10 + j) % k, even + (not j & 1), odd + (j & 1), is_limit and j == up)

                return ans

            return f(0, 0, 0, 0, True)

        return f(str(high)) - f(str(low - 1))
     

参考链接

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/926672.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

element纯前端table分页

<template><div class"boxs"><div class"close" click"closeShow()"><img src"./image/close.png"></div><div class"title">一舟储能峰谷收益统计数据</div><div class"…

计算机安全学习笔记(II):自主访问控制 - DAC

书接上篇博客&#xff0c;自主访问方案是指一个实体可以被授权按其自己的意志使另一个实体能够访问某些资源。DAC的一种通常访问方式是在操作系统或数据库管理系统中运用的访问矩阵(access matrix)。 矩阵中的一维由试图访问资源的被标识的主体组成。这个列表一般由用户或用户…

【核磁共振成像】方格化重建

目录 一、缩放比例二、方格化变换的基础三、重建时间四、方格化核 一、缩放比例 对于笛卡尔K空间直线轨迹数据可直接用FFT重建&#xff0c;而如果K空间轨迹的任何部分都是非均匀取样的 可用DFT直接重建&#xff0c;有时称为共轭相位重建&#xff0c;但此法太慢不实用。把数据再…

js、PHP连接外卖小票机打印机方案(调用佳博、芯烨等)

前言&#xff1a; 目前开发需要用到电脑直接连接外卖小票机打印小票&#xff0c;查阅各种资料&#xff0c;使用 6612345浏览器 终于解决了这个问题。 效果&#xff1a; PHP、js直接连接小票机并且自动出票。 支持的小票机&#xff1a; 目前测试可以的有&#xff1a;电脑A4打印…

【TI毫米波雷达笔记】SOC外设初始化配置及驱动(以IWR6843AOP为例)

【TI毫米波雷达笔记】SOC外设初始化配置及驱动&#xff08;以IWR6843AOP为例&#xff09; 最基本的工程建立好以后 需要给SOC进行初始化配置 SOC_Cfg socCfg; //SOC配置结构体Task_Params taskParams; //任务参数SOC_Handle socHandle;ESM_init(0U); …

网络安全工程师岗位分类-徐庆臣(黑客洗白者)

研发系&#xff1a; 安全研发、安全攻防研究、逆向分析、云计算研究、机器安全 工程系&#xff1a; 安全工程师、安全运维工程师、安全服务工程师、安全技术支持、安全售后、Web渗透测试工程师、Web安全工程师、应用安全审计、移动安全工程师 销售系&#xff1a; 安全销售…

数字孪生:重塑制造、医疗和能源等领域的未来

数字孪生技术&#xff0c;作为虚拟仿真的重要领域&#xff0c;正以其强大的能力在各个行业中创造前所未有的创新。本文带大家一起深入探讨数字孪生技术在不同领域的广泛应用场景&#xff0c;展示其在实现效率、可靠性和智能化方面的积极影响。 制造业与工业领域 数字孪生技术在…

力扣 337. 打家劫舍 III

题目来源&#xff1a;https://leetcode.cn/problems/house-robber-iii/description/ C题解1&#xff08;来源代码随想录&#xff09;&#xff1a;本题一定是要后序遍历&#xff0c;因为通过递归函数的返回值来做下一步计算。本题关键是要讨论当前节点抢还是不抢。如果抢了当前节…

Java--abstract class 与 interface的区别

在Java语言中&#xff0c;abstract class和interface是支持抽象类定义的两种机制。正是由于这两种机制的存在&#xff0c;才赋予了Java强大的面向对象能力。abstract class和interface之间在对于抽象类定义的支持方面具有很大的相似性&#xff0c;甚至可以相互替换&#xff0c;…

【2023钉钉杯复赛】A题 智能手机用户监测数据分析 Python代码分析

【2023钉钉杯复赛】A题 智能手机用户监测数据分析 Python代码分析 1 题目 一、问题背景 近年来&#xff0c;随着智能手机的产生&#xff0c;发展到爆炸式的普及增长&#xff0c;不仅推动了中 国智能手机市场的发展和扩大&#xff0c;还快速的促进手机软件的开发。近年中国智能…

Linux操作系统--linux环境搭建(2)

在上一小节中,我们已经把CentOS和VMware下载和安装做好了,下面我们使用VMware创建一个虚拟机,如下 1.Vmware创建虚拟机 下面我们开始创建一个新的虚拟机。这里操作就类似于我们攒一个电脑,我们呢先把电脑攒出来,然后再给电脑安装操作系统,这样就可以开始使用这一台电脑了…

【C++】—— C++11新特性之 “右值引用和移动语义”

前言&#xff1a; 本期&#xff0c;我们将要的介绍有关 C右值引用 的相关知识。对于本期知识内容&#xff0c;大家是必须要能够掌握的&#xff0c;在面试中是属于重点考察对象。 目录 &#xff08;一&#xff09;左值引用和右值引用 1、什么是左值&#xff1f;什么是左值引用…

如何在不使用任何软件的情况下将 PDF 转换为 Excel

通常&#xff0c;您可能会遇到这样的情况&#xff1a;您需要的数据不在 Excel 工作表中&#xff0c;而是以数据表形式出现在 PDF 文件中。为了将此数据放入 Excel 工作表中&#xff0c;如果您尝试将数字复制并粘贴到电子表格中&#xff0c;则列/行将无法正确复制和对齐。因此&a…

C++信息学奥赛1145:字符串p型编码

#include <iostream> #include <string> using namespace std; int main() {string str;// 输入一个字符串cin>>str;int nstr.length();for(int i0;i<n;i){int a1;while(str[i]str[i1]){i;a;}cout<<a<<str[i]; // 输出连续相同字符的个数和该…

开源硬件:下一个技术革命?

&#x1f337;&#x1f341; 博主猫头虎 带您 Go to New World.✨&#x1f341; &#x1f984; 博客首页——猫头虎的博客&#x1f390; &#x1f433;《面试题大全专栏》 文章图文并茂&#x1f995;生动形象&#x1f996;简单易学&#xff01;欢迎大家来踩踩~&#x1f33a; &a…

常见前端面试之VUE面试题汇总七

20. 对 vue 设计原则的理解 1.渐进式 JavaScript 框架&#xff1a;与其它大型框架不同的是&#xff0c;Vue 被设计 为可以自底向上逐层应用。Vue 的核心库只关注视图层&#xff0c;不仅易于上 手&#xff0c;还便于与第三方库或既有项目整合。另一方面&#xff0c;当与现代化的…

COMPUTERS GEOSCIENCES投稿流程

COMPUTERS & GEOSCIENCES投稿流程 期刊介绍页面投稿网页投稿流程1.注册投稿账号2.注册orcid3.需要上传的文件4. 利益声明&#xff08;Declaration of Interest Statement&#xff09;5.Highlights6.爱思唯尔文章类别怎么选 COMPUTERS & GEOSCIENCES投稿流程 期刊介绍页…

前端速查速记系列----评论列表

小程序评论列表 效果图 wxml代码 <view id"econtent"><block wx:for"{{commentlist}}" wx:for-item"item" wx:for-index"index" wx:key"{{item.id}}"><view class"box1"><view class"…

【Java转Go】快速上手学习笔记(六)之网络编程篇一

目录 TCP一个简单案例server.go 服务端client.go 客户端 HTTPserver.go 服务端client.go 客户端 RPC一个很简单的示例server.go 服务端client.go 客户端 WebSocketserver.go 服务端client.go 客户端 完整代码server.go 服务端client.go 客户端 go往期文章笔记&#xff1a; 【J…

FPGA应用于图像处理

FPGA应用于图像处理 FPGA&#xff08;Field-Programmable Gate Array&#xff09;直译过来就是现场可编程门阵列。是一种可以编程的逻辑器件&#xff0c;具有高度的灵活性&#xff0c;可以根据具体需求就像编程来实现不同的功能。 FPGA器件属于专用的集成电流中的一种半定制电…