LeetCode笔记:Weekly Contest 216 比赛记录

腾讯云智后台开发实习面试全纪录(已offer) 腾讯云智后台开发实习面经 阅读详情

0. 赛后总结

这次的比赛真心翻大车了,简直了,而且翻车的理由特别奇葩:因为题目过于简单。。。

唉,看了一下,第一名的大佬花了8分多点就搞定了,然后我为了图快结果没有想到特别清楚,然后居然错了3次,而且奇葩的是3次都是非常坑爹的错误,结果就彻底滑铁卢了,本来花了50分钟,还算勉勉强强能够接受,结果硬生生变成了1小时5分,国内排名掉了近150名,然后世界排名直接掉了400+,唉,我粗心的毛病倒是啥时候才能彻底改掉啊。。。

btw,这次的比赛成绩是国内434,世界1089,很悲剧地没能进入前10%,真的是不甘心啊!!!

以后还是不能急啊,心急是吃不了热豆腐的,唉。。。


好吧,后来发现是我运气好,第四题我的解法事实上是有漏洞的,写博客的时候整理思路才发现,万幸的是测试样例不够全面,侥幸逃过一劫,运气好,运气好。。。


运气好个球,简直了,突然发现leetcode好像发现了测试样例不全,然后直接取消了我第四题的成绩,判定我第四题没做出来,然后我的排名就莫名其妙地降到国内1000名附近了!

简直了,先不说他们是怎么发现的测试样例不全的这个问题,但凡给我一个看一个错误样例我也能直接改回来啊,又不是什么难题,而且还是他们自己的工作失误,居然直接这么处理,真的是简单粗暴,一整天的好心情突然地就被毁掉了,F**K!

1. 题目一

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

1. 解题思路

这一题的解题思路极其直白,直接将list当中的字符串进行拼接之后比较最终的拼接结果即可。

2. 代码实现

给出最终的python代码实现如下:

class Solution:
    def arrayStringsAreEqual(self, word1: List[str], word2: List[str]) -> bool:
        return "".join(word1) == "".join(word2)

一行代码的事,提交代码评测得到:耗时44ms,占用内存14.2MB。

2. 题目二

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

1. 解题思路

这一题当然可以使用递归方式来实现,但是更直接的是我们直接对答案进行构造,因为显然最终答案的构造方式就是在前面尽可能多地填入a。

假设最终的结果中a有 x x x个,z有 z z z个,其他填充字符(恰好一个)为y,则有:

{ x ⋅ 1 + 1 ⋅ y + z ⋅ 26 = k x + 1 + z = n \left\{ \begin{aligned} x \cdot 1 + 1 \cdot y + z \cdot 26 = k \\ x + 1 + z = n \end{aligned} \right. {x⋅1+1⋅y+z⋅26=kx+1+z=n​

变换得到:
y + 25 ⋅ z = k − n + 1 y + 25 \cdot z = k-n+1 y+25⋅z=k−n+1

其中,y的取值范围为1~26。

因此,我们可以求解得到:
{ z = ⌊ k − n + 1 25 ⌋ i f   y > 1 z = ⌊ k − n + 1 25 ⌋ − 1 i f   y ≤ 1 \begin{cases} z = \lfloor{\frac{k-n+1}{25}}\rfloor & if \ y > 1 \\ z = \lfloor{\frac{k-n+1}{25}}\rfloor -1 & if \ y \leq 1 \end{cases} {z=⌊25k−n+1​⌋z=⌊25k−n+1​⌋−1​if y>1if y≤1​

2. 代码实现

给出python代码实现如下:

class Solution:
    def getSmallestString(self, n: int, k: int) -> str:
        z = (k-n+1) // 25
        y = (k-n+1) % 25 
        if y <= 1 and z > 0:
            y += 25
            z -= 1
        x = n-z-1
        return x*'a' + chr(ord('a')+y-1) + z*'z'

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

当前的最优代码实现耗时24ms,不过看了一下本质上也就是直接求,不过他似乎对y和z的确定方式有了更进一步的优化,有兴趣的读者可以自行去看一下,这里就不过度展开了。

3. 题目三

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

1. 解题思路

第三题是我这次翻车翻的最大的一道题,浪费了巨长的时间,就是为了偷懒,结果偷鸡不成蚀把米,唉。。。

这道题的思路其实非常的直接,就是遍历每一个值,考虑每一个值被删除之后的变化。

当每个值被删除之后,后面一个值会补上,因此后方数字的id的奇偶性就会全部发生反转,因此,我们只需要记录前方的所有同奇偶性的数字之和后方异奇偶性的数字之和是否和前方所有异奇偶性的数字之和和后方所有同奇偶性的数字之和。

唯一需要注意的一点就是边际问题,这个仔细一点就行了。

2. 代码实现

给出python代码实现如下:

class Solution:
    def waysToMakeFair(self, nums: List[int]) -> int:
        n = len(nums)
        l = [0 for i in range(n+2)]
        r = [0 for i in range(n+2)]
        for i in range(n):
            l[i+2] = l[i] + nums[i]
            r[n-i-1] = r[n-i+1] + nums[n-i-1]
        ans = 0
        for i in range(n):
            if l[i+1]+r[i+2] == l[i] + r[i+1]:
                ans += 1
        return ans

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

当前最优的代码实现耗时1356ms,看了一下他的实现思路,应该是一样的,反正都是 O ( N ) O(N) O(N)的算法复杂度,就不多做展开了。

4. 题目四

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

1. 解题思路

额,突然发现,这次是运气比较好,比赛的时候给的解法虽然通过了测试,但是实际是有点问题的。。。

唉,运气比较好,运气比较好。。。

真实的解法和我们一开始的思路其实大差不差。首先,要想完成全部的任务,那么显然所需的能量至少是所有任务实际所需的能量,然后的关键就是考虑需要补足的差额。

有关差额的选择,我们需要关联tasks的选择顺序,显然,差额越大的,我们需要在能量还足够的时候尽早地全部完成,然后同样差额的情况下,那么需要能量越大的,我们希望趁着能量还足够,就趁早完成。

从而,我们对tasks进行排序,然后计算所需的能量差额即可。

2. 代码实现

给出最终的代码实现如下:

class Solution:
    def minimumEffort(self, tasks: List[List[int]]) -> int:
        tasks = sorted(tasks, key=lambda x: (x[1] - x[0], x[1]), reverse=True)
        cost = sum(x[0] for x in tasks)
        remain = cost
        for x, y in tasks:
            if remain < y:
                cost += y - remain
                remain = y
            remain -= x
        return cost

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

当前最优的代码实现耗时1248ms,看了一下,整体是差不多的,就不过多展开了。

OV9734 DATASHEET,完整规格书 OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等 立即下载

相关推荐

不只是抓取:用五指灵巧手(ROH-A001/RH56)玩转ROS2下的力控与混合控制

本文深入探讨了在ROS2环境下使用五指灵巧手(ROH-A001/RH56)实现力控与混合控制的实战技巧。从硬件通信协议解析到ROS2节点开发,详细介绍了力感知架构、实时数据处理和混合控制策略,帮助开发者在Ubuntu系统中高效实现精密操作。通过鸡蛋抓取等实例,展示了力控技术在机器人灵巧操作中的关键作用。

weixin_28221501的博客 287

LeetCode笔记:Weekly Contest 295

LeetCode笔记:Weekly Contest 295 1. 题目一 1. 解题思路 2. 代码实现 2. 题目二 1. 解题思路 2. 代码实现 3. 题目三 1. 解题思路 2. 代码实现 4. 题目四 1. 解题思路 2. 代码实现 比赛链接:https://leetcode.com/contest/weekly-contest-295/ 1. 题目一 给出题目一的试题链接如下: 2287. Rearrange Characters to Make Ta..

codename_cys的博客 281

GPS定位不准?可能是GDOP在作怪!手把手教你优化卫星几何分布

本文深入解析了GPS定位精度不佳的常见原因——几何精度因子GDOP。通过剖析卫星几何分布对定位误差的放大效应,文章提供了从理解GDOP、PDOP、HDOP等关键指标,到使用专业APP实时诊断卫星天空图,再到利用在线工具提前规划最佳定位时机的完整实战指南。旨在帮助户外爱好者、无人机飞手及专业用户主动优化卫星几何条件,从而显著提升定位可靠性。

weixin_29062823的博客 306

LeetCode Weekly Contest 36解题思路

LeetCode Weekly Contest 36解题思路 详细代码可以fork下Github上leetcode项目,不定期更新。 赛题本次周赛主要分为以下4道题: Leetcode 617. Merge Two Binary Trees (4分) Leetcode 604. Design Compressed String Iterator (5分) Leetcode 611. Valid

Demon-初来驾到 1174

网格聚类 Grid Clustering/Grid-based Clustering

本文主要简单介绍了网格聚类的基本概念,优缺点,应用场景,建模时的注意事项,评价指标,实现方法,python示例和模型参数等。

JasonH2021的博客 4828

MTK MT6833平台屏幕与TP驱动移植实战:从FAE伪代码到内核模块集成

本文详细介绍了在MTK MT6833平台上进行屏幕与TP驱动移植的完整实战流程。文章从解析供应商提供的初始化伪代码入手,逐步拆解了在LK阶段点亮屏幕、在内核层集成Panel驱动以支持休眠唤醒,以及移植并调试sitronix_ts触摸驱动的核心步骤与关键技巧,为嵌入式开发人员提供了从零到一集成新硬件的清晰指南。

rnn9storyteller的博客 441

Leetcode进阶之路——Weekly Contest 129

先吐槽一下leetcode周赛时间又变了… 等进去的时候才发现都快结束了= = 1020. Partition Array Into Three Parts With Equal Sum Given an array A of integers, return true if and only if we can partition the array into three non-empty ...

MaloFleur 471

半导体设备上位机开发:我的经验与新人指导

半导体设备上位机开发是一项复杂而富有挑战性的工作,需要扎实的技术基础和丰富的经验。如果你对半导体设备上位机开发感兴趣,欢迎随时与我交流,我会尽力帮助你!

qq_43518667的博客 2729

LeetCode Weekly Contest 112记录

945.使数组唯一的最小增量 给定整数数组 A,每次 move 操作将会选择任意 A[i],并将其递增 1。返回使 A 中的每个值都是唯一的最少操作次数。 思路 先放空 代码 class Solution { public: int minIncrementForUnique(vector&amp;amp;amp;amp;lt;int&amp;amp;amp;amp;gt;&amp;amp;amp;amp;amp; A) { int move=0;

weixin_41646851的博客 300

使用C++编写一个可视化窗口

初学C++时,控制台会给我们提供一个黑窗口,而这篇文章所做的就是:创建一个属于图形界面窗口,而不是使用控制台黑窗口 如图,这是一个标题为XSZY的窗口 看完这篇文章,你想要的窗口大小,图标等都可以自己定义 甚至是在窗口上鼠标的样子,都是可以随意改的 所有有关视窗的基本函数和类型都定义在头文件 <windows.h> 中 我们只需要引用就好了 //引用头文件 windows.h #include<windows.h> 然后定义程序的入口函数main int __stdcall W

XSZY_的博客 6万+

地平线J6的基础简介

地平线J6M芯片:面向中阶辅助驾驶市场的高性价比芯片

weixin_43084908的博客 4458

Leetcode weekly 198

换酒问题 原题链接 没啥好说的,直接模拟就行,停止循环的条件就是没有酒了 class Solution: def numWaterBottles(self, numBottles: int, numExchange: int) -> int: remain=0 #换酒之后还有多少空瓶 ans=0 #答案 while numBottles: ans+=numBottles numBottles,re

weixin_48341003的博客 187

[QMT和ptrade量化交易小白入门]-121、如何用K-means聚类,每月自动筛选高流动性ETF

本专栏主要是介绍QMT和ptrade的基础用法,常见函数,写策略的方法,也会分享一些量化交易的思路,大概会写200篇左右。QMT的相关资料较少,在使用过程中不断的摸索,遇到了一些问题,记录下来和大家一起沟通,共同进步。

木头大左的博客 828

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

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

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

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

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

LeetCode笔记:Weekly Contest 198 比赛记录

Weekly Contest 198 0. 赛后感 1. 题目一 2. 题目二 3. 题目三 4. 题目四 0. 赛后感 在体验了几个星期的简单比赛之后,终于这次的比赛让我再一次想起了当年刚开始参加比赛的时候被卡死在一道题的恐惧。 这次真的是又一次感受到了绝望的滋味,一场比赛下来居然只搞定了两题,原则上比较简单的第二题我花了一个多小时,还错了好几次,虽然中间有不少是因为超时或者题目理解错误,但还是让人感受到无比的绝望。 但是整体来看吧,这次的第一名用时从前几周的十分钟左右暴增到35分钟,去除因..

codename_cys的博客 419

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笔记: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笔记:Weekly Contest 215 比赛记录

LeetCode笔记:Weekly Contest 215 0. 赛后总结 1. 题目一 1. 解题思路 2. 代码实现 2. 题目二 1. 解题思路 2. 代码实现 3. 题目三 1. 解题思路 2. 代码实现 4. 题目四 1. 解题思路 2. 代码实现 4. 算法优化 0. 赛后总结 这一次的比赛排名的话还算是凑合,国内327,世界830,总算也是在前10%,但是过程真的是呵呵了,整整错了4次,其中有3次都是极其愚蠢的错误,然后最后还提前了半小时放弃了,最后一题真..

codename_cys的博客 1267

LeetCode笔记:Weekly Contest 230 比赛记录

LeetCode笔记:Weekly Contest 230 0. 比赛记录 1. 题目一 1. 解题思路 2. 代码实现 2. 题目二 1. 解题思路 2. 代码实现 3. 题目三 1. 解题思路 2. 代码实现 4. 题目四 1. 解题思路 2. 代码实现 0. 比赛记录 这个周末其实没有打比赛,因为周一在上海这边有点事,就周日先过来找刘y师姐还有刘br师兄玩耍了,然后就顺理成章地翘掉了今天的周赛。 这里必须要感谢一下刘y师姐还有刘br师兄的盛情款待,不但cover了..

codename_cys的博客 220

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 231 比赛记录

LeetCode笔记:Weekly Contest 231 0. 赛后总结 1. 题目一 1. 解题思路 2. 代码实现 2. 题目二 1. 解题思路 2. 代码实现 3. 题目三 1. 解题思路 2. 代码实现 4. 题目四 1. 解题思路 2. 代码实现 0. 赛后总结 这次的比赛和昨晚也差不多,不过第三题傻逼了,一个低级错误导致连错了4次,然后就啥都就不回来了,看了一下国内排名大约被拉了100名吧,唉,要不肯定能进前5%的…… 1. 题目一 给出题目一的试题链接如..

codename_cys的博客 1367

LeetCode笔记:Weekly Contest 224 比赛记录

LeetCode笔记:Weekly Contest 224 0. 赛后总结 1. 题目一 1. 解题思路 2. 代码实现 2. 题目二 1. 解题思路 2. 代码实现 3. 题目三 1. 解题思路 2. 代码实现 4. 题目四 0. 赛后总结 这次的比赛结果而言真的是惨不忍睹,只做出两题,还错了两次,然后排名就真的惨不忍睹了,都没脸说成绩了,唉。。。 后面加油吧。。。 1. 题目一 给出题目一的试题链接如下: 5653. 可以形成最大正方形的矩形数目 1. 解题思路 这一..

codename_cys的博客 232

LeetCode笔记:Weekly Contest 209 比赛记录

LeetCode笔记:Weekly Contest 209 0. 赛后总结 1. 题目一 1. 解题思路 2. 代码实现 2. 题目二 1. 解题思路 2. 代码实现 3. 题目三 1. 解题思路 2. 代码实现 4. 题目四 1. 解题思路 2. 代码实现 0. 赛后总结 这一次的比赛算是中规中矩吧,花了四十来分钟,完成了3题,最后一题没能搞定。成绩上来说倒是不算差,国内181名,世界538名。大概因为做出最后一题的人确实不多吧。 总之,回头好好研究一下最后一题吧,总..

codename_cys的博客 145

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 246 比赛记录

LeetCode笔记:Weekly Contest 246 1. 题目一 1. 解题思路 2. 代码实现 2. 题目二 1. 解题思路 2. 代码实现 3. 题目三 1. 解题思路 2. 代码实现 4. 题目四 1. 解题思路 2. 代码实现 1. 题目一 给出题目一的试题链接如下: 1903. Largest Odd Number in String 1. 解题思路 区分奇偶数的唯一区别在于末尾位,因此,我们只要找到从尾部开始的第一个奇数的字符然后将其之前所有的数..

codename_cys的博客 167

LeetCode笔记:Weekly Contest 243 比赛记录

LeetCode笔记:Weekly Contest 243 LeetCode笔记:Weekly Contest 243 1. 题目一 1. 解题思路 2. 代码实现 2. 题目二 1. 解题思路 2. 代码实现 3. 题目三 1. 解题思路 2. 代码实现 4. 题目四 1. 解题思路 2. 代码实现 1. 题目一 给出题目一的试题链接如下: 1880. Check if Word Equals Summation of Two Words 1. 解题思路 这一题依

codename_cys的博客 198
上一篇: LeetCode笔记:Weekly Contest 215 比赛记录
下一篇: NLP笔记:浅谈交叉熵(cross entropy)
Espresso Macchiato
博客等级 码龄7年 2453粉丝 818原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值