LeetCode笔记:Biweekly Contest 38 比赛记录

ARM功耗管理之功耗状态及功耗模式 思考:功耗状态?功耗模式?Core&Cluster&Device&SoC如何映射? 阅读详情

0. 赛后总结

这一次的比赛结果整体上还是比较满意的,毕竟4道题都搞定了,就很开心。

排名来说国内129,世界394,差不多就是前6%前7%的样子,唯一可惜的是最后一题一开始题目看错了,浪费了不少时间,否则成绩也许还能再往上拉一下,可惜了。

1. 题目一

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

1. 解题思路

这一题归根结底就是一个排序问题,唯一的考察点在于比较函数的写作上需要按照题目要求定制,但是也不难,直接按照题目要求给出就行了。

2. 代码实现

给出python代码实现如下:

class Solution:
    def frequencySort(self, nums: List[int]) -> List[int]:
        counter = Counter(nums)
        nums = sorted(nums, key=lambda x: (counter[x], -x))
        return nums

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

不过当前似乎提交总量不够,看不到其他人的解法,暂时不知道有没有更好的解题思路,不过整体上估计是不会有什么太大的差异了。

2. 题目二

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

1. 解题思路

这一题事实上也非常的简单,其实就是将所有的点按照横坐标进行排序之后看两个相邻点之间的最大x坐标距离。

我们直接给出python代码实现即可。

2. 代码实现

给出python代码实现如下:

class Solution:
    def maxWidthOfVerticalArea(self, points: List[List[int]]) -> int:
        x = sorted([p[0] for p in points])
        return max([x[i+1] - x[i] for i in range(len(x)-1)])

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

属于当前最优代码实现。

3. 题目三

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

1. 解题思路

这一题算是这一次的比赛里面最让我头疼的一题了,因为确实没啥好的思路,最后只能尝试这暴力求解,直接来了一个4层循环。

不过万幸的是,居然给过了。。。

2. 代码实现

给出暴力求解的代码实现如下:

class Solution:
    def countSubstrings(self, s: str, t: str) -> int:
        ans = 0
        n = len(s)
        m = len(t)
        
        @lru_cache(None)
        def dp(sub):
            l = len(sub)
            if l > m:
                return 0
            ans = 0
            for i in range(m-l+1):
                diff = 0
                for c1, c2 in zip(sub, t[i:i+l]):
                    if c1 != c2:
                        diff += 1
                if diff == 1:
                    ans += 1
            return ans
            
        for i in range(1, n+1):
            for j in range(n-i+1):
                sub = s[j:j+i]
                ans += dp(sub)
        return ans

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

当前的最优代码实现耗时1064ms,比我们有一倍以上的性能提升,不过看他的代码,也是n多层for循环,就很烦,不想看了,如果有读者感兴趣的话可以自行去看一下。

4. 题目四

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

1. 解题思路

这一题刚开始做的时候看错题目了,以为每一个单词都有一个k,结果发现k这个参数是所有单词共享的,那么题目整体就简单许多了,就变成了一道常规的动态规划的题目。

显然,当所有的单词都共享一个k时,在每一位上取用的字母来源自哪个单词就不太重要了,因此,我们首先使用一个counter来记录每一位上包含的字母个数。

而后,就是一个简单的动态规划的实现:

  • 如果单词中第k位上存在目标单词第i位上的字符c,则dp(i, k) = counter[i][c] * dp(i+1, k+1) + dp(i, k+1);
  • 反之,如果单词中第k位上不存在目标单词第i位上的字符c,则dp(i, k) = dp(i, k+1);
  • 如果i == len(target),说明已经一次匹配完成,返回最终结果为1即可;
  • 如果k == len(word),说明已经没有可能的候选字符给他选择了,匹配失败,返回结果为0即可。

2. 代码实现

按照上述的解题思路,我们就可以给出最终的python代码实现如下:

class Solution:
    def numWays(self, words: List[str], target: str) -> int:
        MOD = 1000000007
        
        n = len(target)
        m = len(words[0])
        counter = [Counter(word[i] for word in words) for i in range(m)]
        
        @lru_cache(None)
        def dp(idx, k):
            if idx >= n:
                return 1
            elif k >= m:
                return 0
            if counter[k][target[idx]] == 0:
                return dp(idx, k+1) % MOD
            else:
                return (counter[k][target[idx]] * dp(idx+1, k+1) + dp(idx, k+1)) % MOD
        
        return dp(0, 0)

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

当前最优的代码实现耗时904ms,但是实际提交之后评测发现耗时2364ms,并不比我们的代码实现要高效,因此,这里就不再多做展开了。

指纹浏览器指纹工厂(下):基于真实设备数据特征的马尔可夫链生成与校验 本文揭示了静态指纹生成算法在高级风控时序追踪下的致命缺陷,指出违背设备演进马尔可夫性质(如无状态跳跃、因果断裂)是导致指纹存活率骤降的核心原因。通过分析风控系统的时序状态机与多维特征验证机制,提出基于隐马尔可夫模型(HMM)的动态指纹架构:以真实设备的状态转移链为蓝本,构建异步演进的“数字基因熔炉”,通过非均匀时间步长、突发事件响应及微观因果绑定,模拟软硬件独立更新的物理法则。最终实现指纹在时间维度与微观特征上的自洽,规避风控的时序陷阱。 阅读详情

相关推荐

储能BMS三级架构解析:从模组到堆的管理与控制

本文深入解析了储能电池管理系统(BMS)的核心三级架构,即电池模组管理层(BMU)、电池簇管理层(BCMU)和电池堆管理层(BAMS)。文章详细阐述了各级的职能分工与协同机制,从底层数据采集、均衡管理,到中层信息汇总与安全控制,再到顶层的系统总控与对外通信,揭示了该架构如何实现大规模储能电池的精细化、安全与高效管理。

ik678901234的博客 472

一、一个月有多少天(Biweekly4)

题目描述: 指定年份 Y 和月份 M,请你帮忙计算出该月一共有多少天。 示例 1: 输入:Y = 1992, M = 7 输出:31 示例 2: 输入:Y = 2000, M = 2 输出:29 示例 3: 输入:Y = 1900, M = 2 输出:28 提示: 1583 <= Y <= 2100 1 <= M <= 12 emm除了2月要对年份进行判断其余月份无需判断,...

qq_34446716的博客 640

Matlab/simulink频率响应分析方法

Matlab/Simulink仿真系列问题一.电气模块与信号模块 一.电气模块与信号模块

virtuoso~晓晓 3万+

LeetCode笔记:Biweekly Contest 77

LeetCode笔记:Biweekly Contest 77 1. 题目一 1. 解题思路 2. 代码实现 2. 题目二 1. 解题思路 2. 代码实现 3. 题目三 1. 解题思路 2. 代码实现 4. 题目四 1. 解题思路 2. 代码实现 比赛链接:https://leetcode.com/contest/biweekly-contest-77/ 1. 题目一 给出题目一的试题链接如下: 2255. Count Prefixes of a Given Str..

codename_cys的博客 1023

攻防实战之Confluence后利用

这边管理员密码是密文加密在数据库中,解不开,因此解决的思路是将管理员用户密码修改为已知明文密码的密文(这边不能直接在数据库中添加字段,关系型数据库在单表中添加一条字段可能会出现问题),登录上后台以后,添加用户并加入管理员组,最后将管理员密码还原。Confluence的后利用主要问题在于在Linux中搭建时,默认是Confluence用户权限,如下图所示,而confluence在linux中是没有写权限的,这也就是为什么有些人发现可以执行命令但是shell写不进去。至此admin的密码被改为了123123。

weixin_39251927的博客 2716

基于价值的深度强化学习:DQN

本文主要是介绍DQN原理和算法伪代码和代码实现,算法实现包括pytorch版本和stable-baselines3版本

溯源的专栏 1085

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

STM32F407+LAN8720A+LwIP实战:FreeModbus TCP从机功能开发指南

本文详细介绍了基于STM32F407和LAN8720A硬件平台,结合LwIP协议栈实现FreeModbus TCP从机功能的开发指南。内容涵盖硬件连接、LwIP移植、FreeModbus TCP从机实现、任务调度及调试技巧,为工业控制领域的以太网通信开发提供实用参考。

weixin_29190651的博客 547

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

UE 动态获取 资源缩略图 下载到本地或返回图片信息

UE 动态加载资源缩略图 返回图片信息或保存到本地

qq_46080252的博客 1937

保姆级教程:用TIA Portal V17给S7-1200 PLC和HMI做个联调仿真(附抢答器完整项目包)

本文提供了一份详细的TIA Portal V17教程,指导如何实现S7-1200 PLC与HMI的联合仿真开发。通过抢答器项目实例,涵盖从环境搭建、PLC编程到HMI设计的全流程,帮助工程师高效完成工业自动化系统的虚拟调试,显著提升开发效率。

weixin_30417487的博客 631

Leetcode 3629. Minimum Jumps to Reach End via Prime Teleportation

Leetcode 3629. Minimum Jumps to Reach End via Prime Teleportation

codename_cys的博客 3868

ESD 防护深度解析:模型、等级、系统设计与防护策略

本文系统阐述了静电放电(ESD)防护的核心技术体系。首先对比分析了HBM(人体模型)和CDM(充电设备模型)两种基础ESD模型的物理特性、测试标准及分级要求,指出相同电压下CDM的破坏性是HBM的15-20倍。其次详细解析了IEC61000-4-2系统级ESD标准,包括接触/空气放电测试方法及判定等级。重点提出了系统级防护的三层架构:空间隔离(≥10mm间距)、电气隔离(地平面分割)和TVS管选型(响应时间<1ns),并对比了MOV、SCR等防护器件特性。针对不同应用场景(消费电子、工业控制等)给出了差异化

bother3000的博客 1885

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

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

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

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

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

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

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

LeetCode笔记:Weekly Contest 279

LeetCode笔记:Weekly Contest 279 1. 题目一 1. 解题思路 2. 代码实现 2. 题目二 1. 解题思路 2. 代码实现 3. 题目三 1. 解题思路 2. 代码实现 4. 题目四 1. 解题思路 2. 代码实现 1. 题目一 给出题目一的试题链接如下: 2164. Sort Even and Odd Indices Independently 1. 解题思路 这题还是比较直接的,就是先按照奇偶性取出元素,然后分别进行排序之后进行重组即..

codename_cys的博客 1514

视频隐私脱敏工程化:CSRT/KCF追踪算法在本地推理中的实现与边界

在短视频内容合规审查中,动态遮挡(Dynamic Masking)是高频且高耗时的环节。传统手动关键帧打码不仅效率低下,且在目标快速移动或遮挡时极易出现遮罩漂移。本文从计算机视觉工程角度,解析基于CSRT与KCF算法的目标追踪方案在视频隐私处理中的技术路径、性能权衡及落地实践。

Mysssone的博客 256
上一篇: 经典算法:排序算法整理
下一篇: LeetCode笔记:Weekly Contest 213 比赛记录
Espresso Macchiato
博客等级 码龄7年 2453粉丝 818原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值