LeetCode笔记:Biweekly Contest 44 比赛记录

OpenCV实战:从边缘检测到透视校正,打造智能文档扫描仪(Python代码详解) 本文详细介绍了如何使用OpenCV和Python从零开始构建一个智能文档扫描仪。通过边缘检测、透视校正和文字增强等核心技术,将倾斜、模糊的文档照片转换为清晰、方正的高质量扫描图像。文章提供了完整的代码实现和参数调优经验,帮助开发者打造稳定、高效的文档处理工具。 阅读详情

0. 赛后总结

又是只做出两题的一天,唉,心累成疾,不过所幸结果还算勉勉强强,不至于太过丢人吧,唉……

1. 题目一

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

1. 解题思路

这一题没啥好说的,根据题意,每一座山的山峰高度就是前面所有元素的求和,因此,我们累加之后求一个最大值即可。

2. 代码实现

给出python代码实现如下:

class Solution:
    def largestAltitude(self, gain: List[int]) -> int:
        return max(0, max(accumulate(gain)))

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

2. 题目二

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

1. 解题思路

这一题比赛的时候就完全没有做出来,比赛完了之后看了一下别人的解法,简直惊掉了三观,因为他们的思路极其简单直接,但是我总觉得这个思路不完备,可能存在bug……

whatever,这里,我们先给出他们的解题思路说明,然后给出代码实现,读者也可以自己想一想,反正我个人总是觉得这个解法有逻辑漏洞……

他们的算法思路核心点如下:

  • 考察某一种语言lan,考察如果两个人无法交流,那么是他们都学习该语言(如果他们不会的话),是他们可以使用该语言进行交流。遍历所有的语言,所需要教的次数最少的结果即为最终的答案。

但是,这里有一个很奇怪的逻辑,即:为什么最优解的时候一定是教所有人同一种语言呢?为什么不可能是教其中某些人语言A,而另一部分人语言B呢?

whatever,我们先按照上述思路进行代码写作,发现可以成功通过所有测试样例。

2. 代码实现

给出python代码实现如下:

class Solution:
    def minimumTeachings(self, n: int, languages: List[List[int]], friendships: List[List[int]]) -> int:
        languages = [set(langs) for langs in languages]
        res = len(friendships)
        for lan in range(n):
            teach = set()
            for u, v in friendships:
                u, v = u-1, v-1
                if languages[u] & languages[v]:
                    continue
                if lan not in languages[u]:
                    teach.add(u)
                if lan not in languages[v]:
                    teach.add(v)
            res = min(res, len(teach))
        return res

提交代码评测得到:8408ms,占用内存27.8MB。

3. 题目三

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

1. 解题思路

这一题虽然被放在了题目三,但事实上上较之第二题感觉要简单多了。

对于encoded中的每一个元素y[i] = x[i] ^ x[i+1],又由于基本的性质x ^ x == 0,因此,我们对给出的数组累积求一个异或操作就能够得到一个新的数组,他们的元素分别为z[i] = x[0] ^ x[i+1]。

剩下的问题就是我们如何求出x[0],由于元素总数为基数,因此,我们将偶数的元素全部求个异或操作,就能够得到除了x[0]之外所有元素的异或结果,然后又由于元素来自于1到n,因此,我们有:

x[0] = 1^2^...^n ^ z[1]^z[3]^...

由此,我们可以反解得到全部的数字。

2. 代码实现

给出python代码实现如下:

class Solution:
    def decode(self, encoded: List[int]) -> List[int]:
        n = len(encoded)
        x1 = 0
        for i in range(1, n+2):
            x1 = x1 ^ i
        # print(x1)
        for i in range(1, n, 2):
            x1 = x1 ^ encoded[i]
        # print(x1)
        s = deepcopy(encoded)
        for i in range(n-1):
            s[i+1] = s[i] ^ s[i+1]
        res = [x1] + [x1 ^ x for x in s]
        return res

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

4. 题目四

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

1. 解题思路

这一题比赛的时候我的思路是采用动态规划的解题方法,代码倒是挺容易就写出来了,但是果不其然遇到了超时问题,然后就挂了。

赛后看了一下别人的解法,他们的思路事实上比赛的时候我也想过,即:

  1. 对于要得到的乘积数进行因式分解,获取他的因子;
  2. 根据因式分解的结果进行解析求解。

但是,有关其中第二点的实现我当时没有想出来,后来看了别人的解答之后倒是现在能够明白了,想通了之后就感觉还是蛮简单的。

我们考察针对某一个query (n, k),假设 p p p是k的一个因子,且 p p p的阶数为 m m m,即k % p**m == 0 and k % (p**(m+1)) != 0。

此时,我们要将这 m m m个 p p p放置到 n n n个数当中,且允许一个数中被放置多个。相当于一个切分问题,我们现在有 m m m个全同的元素,要在其中插入 n − 1 n-1 n−1个格栅,使之分成 n n n份,共有多少种不同的插入方法。

这个问题基本可以秒答了,为: C n + m − 1 n − 1 C_{n+m-1}^{n-1} Cn+m−1n−1​。

而对于不同的因子,他们的排列是相互独立的,因此,我们将所有因数的解进行求积操作即可得到我们最终的结果。

2. 代码实现

给出python代码实现如下:

class Solution:
    def get_prime_number(self):
        return [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103]
    
    @lru_cache(None)
    def C(self, n, m):
        MOD = 10**9 + 7
        res = 1
        if m < n // 2:
            m = n - m
        for i in range(m+1, n+1):
            res *= i
        for i in range(n-m):
            res = res // (i+1)
        return res % MOD
        
    def waysToFillArray(self, queries: List[List[int]]) -> List[int]:
        MOD = 10 ** 9 + 7
        primes = self.get_prime_number()
        
        def f(n, k):
            if n == 1:
                return 1
            elif k == 1:
                return 1
            factor = defaultdict(int)
            res = 1
            for p in primes:
                while k % p == 0:
                    factor[p] += 1
                    k = k // p
                res *= self.C(n-1+factor[p], n-1)
            if k != 1:
                res *= n
            return res % MOD
        
        return [f(n, k) for n, k  in queries]

提交代码评测得到:耗时864ms,占用内存32.1MB。为当前最优的代码实现。

单智能体篇:Prompt工程艺术 模型在接收到 Prompt 时会自动扮演“角色”,角色定义的好坏直接影响智能体输出的风格和专业性。角色定义的重要性让智能体具备明确身份,例如“你是一位专业理财顾问”或“你是一个幽默的文案创作助手”。角色限定了模型知识输出的范围,使回答更专业、更贴合预期。实战示例模糊Prompt给我一些投资建议。你可以投资股票或者基金。优化Prompt你是一位具有10年经验的专业理财顾问,请给我针对30岁男性,年收入20万,风险偏中等的投资组合建议。 阅读详情

相关推荐

【CSP-J/S初赛知识点整理】

CSP-J/S初赛知识点整理

qq_43884946的博客 1万+

LeetCode笔记:Biweekly Contest 45 比赛记录

LeetCode笔记:Biweekly Contest 45 0. 赛后总结 1. 题目一 1. 解题思路 2. 代码实现 2. 题目二 1. 解题思路 2. 代码实现 3. 题目三 1. 解题思路 2. 代码实现 4. 题目四 1. 解题思路 2. 代码实现 0. 赛后总结 这一次的比赛整体还好吧,四道题都做出来了,所以整体排名就挺高的,不过后来发现其实有运气的成分,因为最后一题做的方法并非是最优解法,是会遇到超时问题的,只是比赛的时候运气好凑巧过关了而已…… 总之,..

codename_cys的博客 272

解决OpenCASCADE性能瓶颈:显示加速与三角剖分优化全攻略

本文深入探讨OpenCASCADE在工业设计和CAD建模中的性能优化策略,重点解决显示加速与三角剖分等核心瓶颈问题。通过智能刷新控制、显示数据结构优化和动态LOD技术,显著提升渲染效率和交互体验,适用于复杂场景下的三维可视化应用。

weixin_30752699的博客 344

LeetCode笔记:Biweekly Contest 110

LeetCode笔记:Biweekly Contest 110

codename_cys的博客 454

GNSS - PPP软件 - GAMP 在VS2019/2022下完成调试、跑通程序(超详细!)

WIN32;_DEBUG;_CONSOLE;O_WARNINGS;ENAGLO;ENACMP;ENAGAL;ENAQZS;NFREQ=3。

qq_43381998的博客 8251

轻量级NAS的隐秘战场:比特米盒CumeBox2与CasaOS的生态融合实践

本文探讨了比特米盒CumeBox2轻量级NAS设备与CasaOS操作系统的生态融合实践。通过硬件选型、系统部署、性能优化和应用场景分析,展示了如何将CumeBox2与CasaOS深度整合,打造经济实用的家庭数据管理中心,特别适合入门级用户和小型办公环境。

rl6adventurer的博客 895

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

【SimPy系列博客之官方example学习与解读】—— Example 1: Bank Renege

Hello,优快云的各位小伙伴们,拖更了几年后,又重新开始记录这段时间准备学习的东西啦!最近博主在学习 SimPy 的相关知识,发现国内关于 SimPy 的介绍还是相对较少,且缺乏系统性,因此博主打算用1~2周的时间,边学边记,打算从 SimPy 官方给出的几个例子出发分析 SimPy 的使用场景和用法,希望能和大家互勉!那废话不多说,我们直接开始吧!今天要学习的例程是 Bank Renege。

凝望,划过星空的博客 2009

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

新能源充电桩充电枪口标准

建立的标准确保了新能源汽车充电的安全性、兼容性和效率,促进了新能源汽车产业的发展。

网络安全的研究者、新能源行业的追求者 4689

基于深度学习的涂胶缺陷类型检测:数据集处理与YOLOv8模型实现

本文提出了一种基于YOLOv8深度学习的涂胶缺陷检测系统,针对断胶、溢胶、缺胶、气泡及胶条宽度异常等常见缺陷类型,实现了从数据采集到模型部署的完整解决方案。系统采用工业相机采集涂胶图像,通过多形态数据增强策略解决样本稀缺问题,利用YOLOv8框架实现高效检测。相比传统人工目检和规则式机器视觉方法,该系统在检测精度(mAP达97.5%)和实时性(单图检测耗时0.038秒)方面表现优异,可满足智能制造场景下的涂胶质量检测需求。

huanghm88的专栏 272

Leetcode 3629. Minimum Jumps to Reach End via Prime Teleportation

Leetcode 3629. Minimum Jumps to Reach End via Prime Teleportation

codename_cys的博客 3868

2024年广东省职业院校技能大赛“区块链技术应用”任务书—区块链应用系统开发参考答案

摘要 本文档提供了2024年广东省职业院校技能大赛"区块链技术应用"项目中区块链电子签章前端功能开发的参考答案。主要内容包括:1)注册页面开发,实现身份证号码双向绑定和注册请求发送;2)登录页面开发,实现用户认证、状态保存和页面跳转;3)个人印章页面开发,实现注销功能和印章信息展示。每个任务均包含具体实现代码片段和功能测试要点,涵盖Vue.js框架下的数据绑定、axios请求处理和本地存储等关键技术点。

我是网络安全兼技能大赛工程师,专注网络安全技术学习与技能大赛实战!持续分享最新的技术文章,帮你少走弯路,一起在技术赛道上进步~ 345

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

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

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

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

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

jre9下载 jdk9

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

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的博客 252
上一篇: LeetCode笔记:Weekly Contest 224 比赛记录
下一篇: LeetCode笔记:Weekly Contest 225 比赛记录
Espresso Macchiato
博客等级 码龄7年 2453粉丝 818原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值