LeetCode笔记:Biweekly Contest 40 比赛记录

手把手教你用支付宝密钥工具生成RSA2密钥对(含Windows/Mac操作截图) 本文详细介绍了如何使用支付宝密钥工具生成RSA2密钥对,包括Windows和Mac平台的操作步骤与截图。从工具下载、安装到密钥生成、配置支付宝平台,再到开发环境集成实战,手把手教你完成支付宝支付接口对接。特别强调密钥安全管理和最佳实践,帮助开发者避免常见安全隐患。 阅读详情

0. 赛后总结

这次的比赛也算是把我震惊到了,前三题都把条件设置的极为简单,以至于几乎不用考虑什么特殊边界条件的情况,导致整体问题难度就下降了好多,第四题其实还是有点麻烦,真要想一个好的动态规划算法反正我是一下子没啥好的思路,然后尝试了一下暴力求解,居然一次过了,顿时就惊呆了。

这次也是历史性地打入了世界前50,差点打进前25(27名),国内更是19名,直接出现在了第一页上,简直是被自己惊呆了,只要leetcode不要再出什么奇葩操作,我觉得我能把这次的成绩吹上好久😂

1. 题目一

给出题目一的试题链接如下:

1. 解题思路

这一题要考虑最优的代码实现其实还是蛮烦的,不过由于限制了字符串长度不会超过100,因此耗时再怎么样也不会太过长,因此,我们就直接用最暴力的方法,直接不断地增长待检测字符串,直到其不出现在原始字符串序列当中,然后统计其累加次数即可。

2. 代码实现

给出python代码实现如下:

class Solution:
    def maxRepeating(self, sequence: str, word: str) -> int:
        ans = 0
        sub = word
        while sequence.find(sub) != -1:
            ans += 1
            sub += word
        return ans

提交代码评测得到:耗时32ms,占用内存14.1MB。

当前最优的代码实现耗时20ms,但是看了一下算法思路上是完全相同的,因此这里就不多做展开了。

2. 题目二

给出题目二的试题链接如下:

1. 解题思路

这一题同样的,如果放在一般的情况,那么要考虑下面一些特殊情况:

  1. a刚好为list1的开头;
  2. b刚好为list2的结尾;

但是,题目给出的限制条件直接排除了这些特殊情况出现的可能性,因此,我们要做的就只剩下找到开始节点和结束节点,然后把list2加入进去就行了。

2. 代码实现

给出python代码实现如下:

class Solution:
    def mergeInBetween(self, list1: ListNode, a: int, b: int, list2: ListNode) -> ListNode:
        p0 = list1
        counter = 0
        while p0:
            if counter == a-1:
                p_st = p0
            elif counter == b+1:
                p_ed = p0
                break
            p0 = p0.next
            counter += 1
            
        p_st.next = list2
        p0 = list2
        while p0.next:
            p0 = p0.next
        p0.next = p_ed
        return list1

提交代码评测得到:耗时460ms,占用内存20.1MB。

当前最优的代码实现耗时440ms,同样的,考察其代码实现之后发现,思路上两者是完全一致的,因此就不多做展开了。

3. 题目三

给出题目三的试题链接如下:

1. 解题思路

这一题同样感觉没啥东西,就是在一个数组中准确的进行定位然后进行数值删除和插入即可,用python的list类的固有函数进行实现就行了。

2. 代码实现

给出python代码实现如下:

class FrontMiddleBackQueue:

    def __init__(self):
        self.q = []
        self.n = 0

    def pushFront(self, val: int) -> None:
        self.q.insert(0, val)
        self.n += 1

    def pushMiddle(self, val: int) -> None:
        self.q.insert(self.n // 2, val)
        self.n += 1

    def pushBack(self, val: int) -> None:
        self.q.append(val)
        self.n += 1

    def popFront(self) -> int:
        if self.n > 0:
            self.n -= 1
            return self.q.pop(0)
        else:
            return -1

    def popMiddle(self) -> int:
        if self.n > 0:
            self.n -= 1
            return self.q.pop(self.n // 2)
        else:
            return -1

    def popBack(self) -> int:
        if self.n > 0:
            self.n -= 1
            return self.q.pop()
        else:
            return -1

提交代码评测得到:耗时72ms,占用内存14.8MB。

当前最优的代码实现耗时460ms,看了一下,他们并没有使用insert内置方法,但是看了一下题目,好像确实没有说不能够使用insert内置方法,就比较疑惑。。。

4. 题目四

给出题目四的试题链接如下:

1. 解题思路

这一题讲道理如果把时间卡的比较紧的话还是挺折腾的,反正我是一下子没有想到什么特别巧妙的方法。

但是,由于给的数组长度不长于1000,因此,当算法复杂度是 O ( N 2 ) O(N^2) O(N2)时,整体耗时应该也还是在允许范围内,就可以尝试一下暴力算法。

我们的暴力求解思路其实也蛮简单的,就是对每一个元素,假设他是保留下来的山峰的情况下,看他左边和右边最多能够保留下多少个元素,最后取出最大的这个就是我们最后的选法,用总的元素个数减去保留的元素个数,就是最小需要删除的元素数目。

而考虑每个元素左侧能够保留的最大元素个数时(记作lcount[i]),只要找到它左侧所有比他更小的元素,就会有lcount[i] = min(lcount[j]+1, lcount[i])即可,这样我们就能在 O ( N 2 ) O(N^2) O(N2)时间复杂度范围内获取每一个元素作为山峰时左侧可以保留的最大元素个数。

同理我们也可以获得每一个元素作为山峰时右侧可以保留的最大元素个数。

至此,问题即求解完成。

2. 代码实现

给出python代码实现如下:

class Solution:
    def minimumMountainRemovals(self, nums: List[int]) -> int:
        n = len(nums)
        lcount = [0 for _ in range(n)]
        for i in range(1, n):
            for j in range(i):
                if nums[i] > nums[j]:
                    lcount[i] = max(lcount[i], lcount[j] + 1)
                    
        rcount = [0 for _ in range(n)]
        for i in range(n-2, -1, -1):
            for j in range(n-1, i, -1):
                if nums[i] > nums[j]:
                    rcount[i] = max(rcount[i], rcount[j] + 1)
        
        ans = n
        for i in range(n):
            if lcount[i] != 0 and rcount[i] != 0:
                ans = min(ans, n-(1+lcount[i]+rcount[i]))
        return ans

提交代码评测得到:耗时3896ms,占用内存14.6MB。

当前最优的代码实现耗时3476ms,但是看了一下,两者的算法思路是完全相同的,因此这里就不多做展开了。

5.17华为OD机试真题 新系统 - 输出二叉树后序遍历结果 (Java/Py/C/C++/Js/Go) 阅读详情

相关推荐

kernel: TCP: out of memory -- consider tuning tcp_mem 问题处理记录

参数名 说明 net.ipv4.tcp_max_tw_buckets = 6000 系统同时保持TIME_WAIT套接字的最大数量,如果超过这个数值将立刻被清楚并输出警告信息。默认值为180000。对于squid来说效果不是很大,但可以控制TIME_WAIT套接字最大值,避免squid服务器被拖死。 net.ipv4.tcp_rmem = 4096 87380 4194304 接收窗口的最大大小...

weixin_46691674的博客 6893

LeetCode笔记:Biweekly Contest 42 比赛记录

LeetCode笔记:Biweekly Contest 42 0. 赛后总结 1. 题目一 1. 解题思路 2. 代码实现 2. 题目二 1. 解题思路 2. 代码实现 3. 题目三 1. 解题思路 2. 代码实现 4. 题目四 1. 解题思路 2. 代码实现 0. 赛后总结 唉,前两周刚和同学吹牛说现在leetcode的比赛基本都能在前10%,发挥好的话能争国内前100,然后这周转头就被打脸,打得啪啪响,国内320/1578,世界1023/6631,连前20%都没卡进..

codename_cys的博客 1720

嘉立创EDA vs Altium Designer:新手如何选择?从界面到实战全对比

本文全面对比了嘉立创EDA与Altium Designer(AD)两大PCB设计工具,从设计哲学、界面交互、封装库管理、设计规则引擎、协作功能到成本生态六大维度进行深入分析。嘉立创EDA以极简设计和云端协作为特色,适合学生和创客快速上手;而AD则凭借专业级精准控制,成为高端电子设计的行业标准。通过实战案例和详细对比表格,帮助新手根据项目需求选择合适的EDA工具。

weixin_30296405的博客 721

LeetCode笔记:Biweekly Contest 52 比赛记录

LeetCode笔记:Biweekly Contest 52 0. 赛后总结 1. 题目一 1. 解题思路 2. 代码实现 2. 题目二 1. 解题思路 2. 代码实现 3. 题目三 1. 解题思路 2. 代码实现 4. 题目四 1. 解题思路 2. 代码实现 0. 赛后总结 这周是一周双赛,不过因为各种各样的原因两场比赛都是没有参加,赛后花了点时间做了一下,倒是总算还是都做出来了,不过没看时间就是了…… 1. 题目一 给出题目一的试题链接如下: 1859. Sort..

codename_cys的博客 576

c# U盘禁用---守护进程(插入,拔出,卸载等操作)

一、简介 传统的对U盘禁用,我们多采用修改注册表的方式,详情参考:https://blog.youkuaiyun.com/qq_25372599/article/details/79815407;本文将介绍一种其他的方式–后台守护程序。其原理非常简单:当守护程序检测到U盘的插入信号,我们自动卸载U盘,致使系统无法识别U盘,达到禁用U盘的效果。 二、程序设计 2.1 变量定义 strin...

星星之火燃亮码空 2846

数字后端零基础入门系列 | Innovus零基础LAB学习Day9

数字后端零基础入门系列 | Innovus零基础LAB学习Day9

weixin_37584728的博客 4580

LeetCode笔记:Biweekly Contest 35 比赛记录

LeetCode笔记:Biweekly Contest 35 0. 赛后总结 1. 题目一 1. 解题思路 2. 代码实现 2. 题目二 1. 解题思路 2. 代码实现 3. 题目三 1. 解题思路 2. 代码实现 3. 算法优化 4. 题目四 1. 解题思路 2. 代码实现 0. 赛后总结 中文的leetcode果然和我犯冲,这次比赛又是桑心的一逼,题目倒还好,虽然第二第三题卡了一会,但是好歹都做出来了,但是最坑的是第四题居然比赛的时候没做出来,然后比赛结束之后10分..

codename_cys的博客 244

【obj To 3DTiles 进阶实战】 从零配置地理坐标系与扩展属性元数据

本文详细解析了如何将OBJ模型转换为3DTiles格式,重点介绍了地理坐标系配置与属性元数据扩展的实战技巧。通过obj23dtiles工具,开发者可以精准定位模型经纬高坐标,并添加结构化属性表,实现城市规划模型在数字孪生平台的高效应用。

weixin_27215337的博客 367

LeetCode笔记:Biweekly Contest 31 比赛记录

Biweekly Contest 31 0. 赛后总结 1. 题目一 1. 解题思路 2. 代码实现 2. 题目二 1. 解题思路 2. 代码实现 3. 题目三 1. 解题思路 2. 代码实现 4. 题目四 1. 解题思路 2. 代码实现 0. 赛后总结 赛前坦率说是想通过Biweekly Contest找点自信的,结果他喵的又是做的一塌糊涂,成绩惨不忍睹,满心的郁闷挤压在心中,连觉都睡不好,简直了。 坦率地说,这次的比赛就做题来说事实上是没有犯太大的错误的,前三题都搞..

codename_cys的博客 278

在 Windows 10 中通过 WSL2 安装 vLLM 部署本地大模型的方法和步骤

通过 WSL2 在 Windows 10 中部署 vLLM 的核心优势是兼顾 Windows 生态与 Linux 环境的 GPU 加速能力,适合需要在 Windows 下开发但依赖 vLLM 高性能推理的场景。相比原生 Windows 部署(Ollama 等工具),该方案性能更优(接近原生 Ubuntu),且支持更大模型和量化优化。若追求极致性能,建议直接使用 Ubuntu 系统;若必须依赖 Windows 工具链,WSL2 + vLLM 是当前最优选择。

当 AI 开始写文章、绘星空,甚至预测未来,您还在旁观吗?这里将剖开人工智能的思考逻辑,拆解 AI 创作的底层密码,也聊聊人工智能里的人文温度。每篇都有让你拍案的细节,快来解锁 AI 时代的神奇世界! 3754

Python爬虫抓取学术期刊数据(Springer、Elsevier)

本文详细介绍了如何使用Python爬虫抓取学术期刊网站(如Springer、Elsevier)上的文章信息,并进行数据清洗和存储。我们使用了requestsSeleniumpandas等技术,通过模拟浏览器行为来绕过反爬虫机制,并将数据保存为Excel文件,方便后续分析。未来,我们可以通过加入更多的期刊网站数据源,扩展爬虫的功能,抓取更多的学术数据。同时,结合自然语言处理(NLP)技术,可以对抓取的文章进行自动化的摘要提取和主题分类,为学术研究提供更多的支持。

2201_76125261的博客 1487

LeetCode笔记:Biweekly Contest 100

LeetCode笔记:Biweekly Contest 100

codename_cys的博客 293

手把手教你学veriolg(二十六)-- Verilog CIC 滤波器设计

目录 Verilog CIC 滤波器设计1. CIC 滤波器的基本原理2. Verilog 实现3. 说明4. 测试激励5. 总结 CIC(Cascade-Integrator-Comb)滤波器是一种特殊的数字滤波器,常用于多速率信号处理中,尤其是用于信号的上采样(插值)和下采样(抽取)。CIC 滤波器的特点在于它具有简单的硬件实现、不需要乘法器(仅使用加法器和延迟元件)、且具有线性相位特性。然而,CIC 滤波器的缺点是它会产生较大的量化误差,因此在设计时需要特别注意字长的选择以避免溢出。1. CIC 滤波

MHD0815的博客 890

LeetCode第23场双周赛(Biweekly Contest 23)解题报告

这周的双周赛没做,但补了题,发现其实不难,挺简单的。 第一题:模拟。 第二题:构造。 第三题:计算几何。 第四题:DP 或者 贪心。 详细题解如下。 目录 1.统计最大组的数目(Count Largest Group) 题目链接 题意 解题思路 AC代码(C++) 2.构造 K 个回文字符串(Construct K Palindrome Strings) 题目链接 ...

Mikchy的博客 584

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

leetcode_problem_rating用户完全指南:关键词搜索、评分区间过滤与自定义排序4大核心功能详解

📊 leetcode_problem_rating 是一个基于 **Elo 评分系统**为 LeetCode 周赛/双周赛题目计算难度分数的开源 Web 工具。它能帮你快速找到"某分数段"、"某场竞赛"、"某关键词"下的题目,适合刷题选手精准选题。本文带你用 10 分钟掌握它的 4 大核心功能。 --- ## 项目简介:它是什么? 这个项目的前端界面会把 LeetCode 历次周赛(Wee

gitblog_00649的博客 830

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

LeetCode笔记:Biweekly Contest 70

LeetCode笔记:Biweekly Contest 70 1. 题目一 1. 解题思路 2. 代码实现 2. 题目二 1. 解题思路 2. 代码实现 3. 题目三 1. 解题思路 2. 代码实现 4. 题目四 1. 解题思路 2. 代码实现 1. 题目一 给出题目一的试题链接如下: 2144. Minimum Cost of Buying Candies With Discount 1. 解题思路 这一题直接使用贪婪算法即可实现。 首先我们将价格进行排序,然后价..

codename_cys的博客 5535

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

LeetCode笔记:Weekly Contest 219 比赛记录

LeetCode笔记:Weekly Contest 219 0. 赛后总结 1. 题目一 1. 解题思路 2. 代码实现 2. 题目二 1. 解题思路 2. 代码实现 3. 题目三 1. 解题思路 2. 代码实现 4. 题目四 1. 解题思路 2. 代码实现 0. 赛后总结 这一次的比赛怎么说呢,感觉有点不尴不尬的。 要说吧,4道题也都做出来了,耗时老实说也没有特别长,不算错误惩罚的话其实也就56分钟,不到1个小时,整体虽然没有挤进国内前100,好歹也有前4%(116/..

codename_cys的博客 4819

Leetcode 3629. Minimum Jumps to Reach End via Prime Teleportation

Leetcode 3629. Minimum Jumps to Reach End via Prime Teleportation

codename_cys的博客 3868

LeetCode笔记:Weekly Contest 221 比赛记录

LeetCode笔记:Weekly Contest 221 0. 赛后总结 1. 题目一 1. 解题思路 2. 代码实现 2. 题目二 1. 解题思路 2. 代码实现 3. 题目三 1. 解题思路 2. 代码实现 4. 题目四 1. 解题思路 2. 代码实现 0. 赛后总结 昨天才遭遇滑铁卢,本以为成绩已经够差了,结果转头今天就被打脸,成绩比昨天还差,国内468/3397,全球1274/8838,真的是,不想说什么了。 不过这次真心是我自找的,第三题明明是一道简单的题目..

codename_cys的博客 3303

LeetCode笔记:Weekly Contest 229 比赛记录

LeetCode笔记:Weekly Contest 229 0. 赛后总结 1. 题目一 1. 解题思路 2. 代码实现 2. 题目二 1. 解题思路 2. 代码实现 3. 题目三 1. 解题思路 2. 代码实现 4. 题目四 1. 解题思路 2. 代码实现 0. 赛后总结 这周的比赛整体都给跪了,两场比赛都是不顺的要死,昨天的比赛还能归结到看错题目,这次的比赛就真的是没得洗了,第三题超时之后就没有更好的思路了,第四题压根没有一个可行的思路,想到的解法实现出来之后发现都..

codename_cys的博客 2468

LeetCode笔记:Weekly Contest 206 比赛记录

LeetCode笔记:Weekly Contest 206 0. 赛后总结 1. 题目一 1. 解题思路 2. 代码实现 2. 题目二 1. 解题思路 2. 代码实现 3. 题目三 1. 解题思路 2. 代码实现 4. 题目四 1. 解题思路 2. 代码实现 0. 赛后总结 最近不知是换到中文leetcode平台之后水土不服还是怎么样,感觉真的是到了瓶颈期了,最近几次打比赛真的是一次不如一次,做起来异常不顺手。 看了一下头部几位大佬们的做题耗时,基本都还是在10分钟左右..

codename_cys的博客 2016

Leetcode 3600. Maximize Spanning Tree Stability with Upgrades

3600. Maximize Spanning Tree Stability with Upgrades

codename_cys的博客 1751

Leetcode 3448. Count Substrings Divisible By Last Digit

Leetcode 3448. Count Substrings Divisible By Last Digit

codename_cys的博客 1712

Leetcode 3537. Fill a Special Grid

Leetcode 3537. Fill a Special Grid

codename_cys的博客 1627

LeetCode笔记:Weekly Contest 220 比赛记录

LeetCode笔记:Weekly Contest 220 0. 赛后总结 1. 题目一 1. 解题思路 2. 代码实现 2. 题目二 1. 解题思路 2. 代码实现 3. 题目三 1. 解题思路 2. 代码实现 4. 题目四 1. 解题思路 2. 代码实现 0. 赛后总结 这次的比赛结果略惨,只做出3题,然后国内才只有229/3690,世界则是667/9606,都是只有前7%的水平。 但是这次的题目应该算是比较简单的,看了一下,第一名的大佬只花了不到10分钟就搞定了,..

codename_cys的博客 1581

Leetcode 3389. Minimum Operations to Make Character Frequencies Equal

Leetcode 3389. Minimum Operations to Make Character Frequencies Equal

codename_cys的博客 1552
上一篇: NLP笔记:word2vec简单考察
下一篇: LeetCode笔记:Weekly Contest 217 比赛记录
Espresso Macchiato
博客等级 码龄7年 2453粉丝 818原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值