LeetCode笔记:Biweekly Contest 48 比赛记录

基于浏览器插件的拼多多买家订单导出方法 阅读详情

0. 赛后总结

这次的比赛算是马马虎虎吧,国内只是10%左右,世界排名稍微高一点,但是也没挤进前5%,感觉也就一般般,哎……

比较搞笑的是,这次第四题倒是搞定了,但是第三题居然一点点思路都没有,也是奇葩的很,唉……

回头好好看看别人的思路,看看到底别人是怎么在几分钟之内把这题给搞定的吧……

1. 题目一

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

1. 解题思路

这一题倒是没啥问题,只要把字符串中所有的数字全部抽取出来,然后做个排序即可。

2. 代码实现

给出python代码实现如下:

class Solution:
    def secondHighest(self, s: str) -> int:
        res = set()
        for c in s:
            if c in "0123456789":
                res.add(int(c))
        res = sorted(res, reverse=True)
        if len(res) > 1:
            return res[1]
        return -1

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

2. 题目二

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

1. 解题思路

第二题就是一个读题的问题,把题目读懂了,这道题就会很快……

这题的核心就是就是对每一个id都需要存储一个验证时间,然后还要记录一下证书的有效时间即可。

之后,就只要按照题意进行三个函数的定义就行了。

2. 代码实现

给出python代码实现如下:

class AuthenticationManager:

    def __init__(self, timeToLive: int):
        self.auth = {}
        self.time = timeToLive

    def generate(self, tokenId: str, currentTime: int) -> None:
        self.auth[tokenId] = currentTime

    def renew(self, tokenId: str, currentTime: int) -> None:
        t = self.auth.get(tokenId, None)
        if t is not None and t <= currentTime < t+self.time:
            self.auth[tokenId] = currentTime

    def countUnexpiredTokens(self, currentTime: int) -> int:
        return len([t for t in self.auth.values() if t <= currentTime < t+self.time])

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

3. 题目三

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

1. 解题思路

惭愧,简直要被我自己蠢哭了,比赛的时候一点思路都没有,然后赛后看了一下别人的解法,发现居然是我自己理解错题目了,硬生生地把一道easy的题目给做成了地狱难度……

感觉自己的语文怕是体育老师教的吧……

核心点在于,题目说的是从0开始连续的,而我理解成了最长的连续数组,也就是说,起点不一定为0,比如[2,2,3,5],就可以组成[3,4,5],但是如果从0开始的话答案就是1,因为除了0之外没法继续往上加……

因此,这道题就可以使用数学归纳法来做,我们首先对coins进行排序。考察第k个硬币面额x,假设之前可以从0一直连续构建到s,且满足 x ≤ s + 1 x \leq s+1 x≤s+1,那么我们必然可以从0一直连续构建到 s + x s+x s+x,因为当 s < x s < x s<x时,按照原先的构建方法即可,当 s ≥ x s \geq x s≥x时,我们先取元素x作为基底,那么就只需要按照原先的方法构造0到s即可。

因此,我们在 O ( N ) O(N) O(N)时间复杂度的情况下就可以快速地得到答案。

2. 代码实现

给出python代码实现如下:

class Solution:
    def getMaximumConsecutive(self, coins: List[int]) -> int:
        coins = sorted(coins)
        s = 0
        for c in coins:
            if c <= s+1:
                s += c
            else:
                break
        return s+1

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

4. 题目四

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

1. 解题思路

这一题我这边的思路其实是非常暴力的,因为条件 n ≤ 7 n \leq 7 n≤7,因此,遍历所有情况的计算复杂度至多为:
C 14 2 2 ⋅ C 12 2 2 ⋅ C 10 2 2 ⋅ C 8 2 2 ⋅ C 6 2 2 ⋅ C 4 2 2 ⋅ C 2 2 2 = 5320940 \frac{C_{14}^{2}}{2} \cdot \frac{C_{12}^{2}}{2} \cdot \frac{C_{10}^{2}}{2} \cdot \frac{C_{8}^{2}}{2} \cdot \frac{C_{6}^{2}}{2} \cdot \frac{C_{4}^{2}}{2} \cdot \frac{C_{2}^{2}}{2} = 5320940 2C142​​⋅2C122​​⋅2C102​​⋅2C82​​⋅2C62​​⋅2C42​​⋅2C22​​=5320940

即时间复杂度在 1 0 6 10^6 106量级,勉强处于可以接受的范围,因此,我们只需要使用一个动态规划算法强行暴力进行实现即可。

2. 代码实现

给出python代码实现如下:

class Solution:
    def maxScore(self, nums: List[int]) -> int:
        n = len(nums)
        cache = []
        for i in range(n-1):
            for j in range(i+1, n):
                cache.append((gcd(nums[i], nums[j]), i, j))
        cache = sorted(cache, reverse=True)
        m = len(cache)
        
        @lru_cache(None)
        def dp(idx, ops, status):
            if ops == 0:
                return 0
            if idx >= m:
                return -math.inf
            res = 0
            for i in range(idx, m):
                g, x, y = cache[i]
                if (1 << x) & status or (1 << y) & status:
                    continue
                res = max(res, ops * g + dp(i+1, ops-1, status ^ (1<<x) ^ (1<<y)))
            return res
        
        return dp(0, n//2, 0)

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

电磁场仿真软件:Sonnet_(3).Sonnet用户界面与操作 Sonnet支持用户通过二次开发自定义工具,例如:编写Python脚本,实现自定义功能。将脚本保存为工具插件。在Sonnet中加载并使用自定义工具。# 示例:自定义工具 import sonnet def custom_tool(design , object , parameter , value) : """自定义工具示例,设置对象的指定参数。 阅读详情

相关推荐

lisflood-fp(一)从源码到可执行文件:Windows下的Cmake实战编译指南

本文详细介绍了在Windows环境下使用Cmake工具编译lisflood-fp水文模型源码生成可执行文件的全过程。从开发环境配置、源码获取到实战编译,逐步指导如何解决常见错误并处理运行时依赖,最终生成可用的exe文件。特别适合水文专业研究者和工程师学习参考。

weixin_30555125的博客 481

LeetCode笔记:Biweekly Contest 43 比赛记录

LeetCode笔记:Biweekly Contest 43 0. 赛后总结 1. 题目一 1. 解题思路 2. 代码实现 2. 题目二 1. 解题思路 2. 代码实现 3. 题目三 1. 解题思路 2. 代码实现 4. 题目四 1. 解题思路 2. 代码实现 3. 算法优化 0. 赛后总结 这一次的比赛整体上还算是顺利吧,虽然也只做出了三题,还错了两次,不过比较前两周的成绩,呵呵,总也算是一个比较开心的事了吧。。。 不过这次终究还算是运气好,大约是最后一题比较难的缘故..

codename_cys的博客 356

软件工程:数据字典

数据字典

永远怀着至诚之心拥抱世界 4275

LeetCode笔记:Biweekly Contest 32 比赛记录

LeetCode笔记:Biweekly Contest 32 0. 赛后总结 1. 题目一 1. 解题思路 2. 代码实现 2. 题目二 1. 解题思路 2. 代码实现 3. 题目三 1. 解题思路 2. 代码实现 4. 题目四 1. 解题思路 2. 代码实现 3. 算法优化 0. 赛后总结 这一次的比赛结果依然是中规中矩,35分钟搞定了3题,然后很不幸的错了两次,但是总排名还算是OK,千名以内,果然双周比赛的时间点选的太尴尬,大晚上的参赛的人数比较少。。。 看了一下大..

codename_cys的博客 302

修改Windows hosts文件的解决方案

本文主要介绍了修改Windows hosts文件解决方案,希望能对新手有所帮助。 文章目录 1. 问题描述 2. 解决方案 2.1 安装软件 2.2 修改hosts文件

weixin_43178406的博客 1万+

2026年算法工程师常见面试简答题

本文摘要:文章系统梳理了机器学习与深度学习中的30个核心概念,涵盖模型优化、评估指标、经典算法和大模型应用等关键知识点。主要内容包括:1)过拟合与欠拟合的成因及解决方法;2)偏差-方差权衡原理;3)数据划分与交叉验证策略;4)分类/回归任务评估指标选择;5)逻辑回归、决策树、SVM等传统算法解析;6)梯度下降优化与正则化技术;7)CNN、RNN、Transformer架构对比;8)Embedding表示与RAG技术。特别强调面试高频考点如XGBoost改进、注意力机制原理等,并给出实际工程中的解决方案建议,

不务正业的猿 350

LeetCode笔记:Biweekly Contest 51 比赛记录

LeetCode笔记:Biweekly Contest 51 0. 赛后总结 1. 题目一 1. 解题思路 2. 代码实现 2. 题目二 1. 解题思路 2. 代码实现 3. 题目三 1. 解题思路 2. 代码实现 4. 题目四 1. 解题思路 2. 代码实现 0. 赛后总结 五一第一天,结果就水过去了,啥正事都没干,健身房也没去,晚上的比赛也偷懒没参加,真的是负罪感满满…… 今天倒是试着做了一下,不过没有做模拟竞赛,所以时间上估计就是超时严重,不过万幸的是题目总算还是..

codename_cys的博客 234

C# Winform使用Monaco打造代码编辑器

本文介绍了如何在Winform项目中集成Monaco代码编辑器。通过NuGet安装WebView2控件,创建monaco-editor.html文件加载编辑器,并实现与C#代码的交互。关键步骤包括:初始化WebView2环境、配置Monaco编辑器参数、设置代码变更监听事件以及处理C#与JavaScript之间的通信。注意事项提示了依赖库安装问题的解决方法。该方案实现了功能完整的代码编辑器,支持代码自动保存和实时显示功能。

遇见--专栏 346

LeetCode笔记:Biweekly Contest 67

LeetCode笔记:Biweekly Contest 67 1. 题目一 1. 解题思路 2. 代码实现 2. 题目二 1. 解题思路 2. 代码实现 3. 题目三 1. 解题思路 2. 代码实现 4. 题目四 1. 解题思路 2. 代码实现 1. 题目一 给出题目一的试题链接如下: 2099. Find Subsequence of Length K With the Largest Sum 1. 解题思路 这一题思路其实还好,其实就是找到最大的k个数,然后构成..

codename_cys的博客 799

【地图模块算法】二维全局地图的开源方案及对比--gmapping、hector、karto、cartographer

系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 TODO:写完再整理 文章目录系列文章目录前言一、gmapping算法建图【基于Raoo-Blackwellized粒子滤波(RBPF)算法】1.gmapping理论(1)gmapping的工作原理(2)gmapping的算法流程(3)gmapping论文理论2.gmappingROS工程框架解析(1)gmapping的功能包架构(2)gmapping订阅和发布的话题(3)gmapping算法建图参数(4)gmapping源码

qq_35635374的博客 3438

软考高级-系统架构设计师 知识点整理 (一篇就够了 建议收藏)

软考高级-系统架构设计师知识点整理---十万字总结,助你通过高级

片言可决讼,半纸能缚龙 7348

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

使用AI预测彩票的架构思路

彩票是随机的数字游戏,不要过度依赖AI,本文仅供娱乐研究

淘淘小窝 9410

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

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

Leetcode 3629. Minimum Jumps to Reach End via Prime Teleportation

Leetcode 3629. Minimum Jumps to Reach End via Prime Teleportation

codename_cys的博客 3868

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

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

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

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笔记: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

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

Leetcode 3609. Minimum Moves to Reach Target in Grid

Leetcode 3609. Minimum Moves to Reach Target in Grid

codename_cys的博客 1528

LeetCode笔记:Weekly Contest 203 比赛记录

LeetCode笔记:Weekly Contest 203 0. 赛后总结 1. 题目一 1. 解题思路 2. 代码实现 2. 题目二 1. 解题思路 2. 代码实现 3. 题目三 1. 解题思路 2. 代码实现 4. 题目四 1. 解题思路 2. 代码实现 0. 赛后总结 昨天刚刚历史性地第一次打进了前500,今天转头就历史性地打进了前200,实在是有点开心。 不过说到底还是因为题目比较简单的关系,看了一下,前头的大佬们都是10分钟左右就做完的,实在不认为这次的题目比..

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

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值