编程基础0到1
编程基础0到1
UGOTNOSHOT
这个作者很懒,什么都没留下…
展开
-
Problem: 1572. 矩阵对角线元素的和
因为是正方形矩阵,所以len(mat) == len(mat[0]),用这个作为循环条件,把所有元素加起来,如果len(mat)%2 == 1,那么就再把对角线相交的那个点的值再减一遍即可。把前几种矩阵对角线元素相加的情况列举一下,方可发现主对角线与副对角线元素下标的规律。时间复杂度: O(n)原创 2024-05-10 19:20:14 · 140 阅读 · 0 评论 -
Problem: 1672. 最富有客户的资产总量
其实就是对列表中的每一个列表中的数字求和,统计出每位客户的资产总额,再求出一个最大值,即为问题答案。先定义一个列表accounts_each,把每一个客户的资产总量添加到里面,再返回最大值。时间复杂度:O(n)原创 2024-05-10 19:15:20 · 112 阅读 · 0 评论 -
Problem: 13. 罗马数字转整数
从后往前用while循环处理罗马数字字符串,当遇到成对的特殊罗马数字时,便进行相应的特殊处理,并让index-=2。对于每一个ifelse里面的处理都把结果添加到final_num中,最后返回final_num。好久没有做过题,记得之前有接触到这一题,也是罗马数字转阿拉伯数字,不过要比这题简单。看了官方给的提示后逐渐有了思路,应该先用字典建立一个罗马数字与阿拉伯数字的映射,再从后往前处理这个罗马数字字符串。原创 2024-05-10 19:11:58 · 142 阅读 · 0 评论 -
Problem: 1523. 在区间范围内统计奇数数目
正常人想法,循环遍历,统计奇数个数,提交发现超时。看提示后惊觉可以总结规律,分为两种情况讨论。原创 2024-05-10 18:59:11 · 101 阅读 · 0 评论 -
Problem: 67. 二进制求和
先创建一个列表用来存储我们的相加结果,然后按情况分别讨论,分别是两位都是1且进位也是1,两位都是1,以及其它情况。当两个字符串都遍历完后,分别检查a或b是否还有剩余的数字,再分别进行相应的处理。最终把列表逆置一下,因为它存储的是相加后每位从后往前的结果。既然是二进制求和,则可用二进制求和手算的方法模拟,并用代码实现,即对a和b两个二进制数,从末位开始相加,如遇到两个数字相加大于1,则有进位,下一位相加时就需考虑进位,若两个数字相加小于等于1,则无进位,继续按照从右往左的顺序逐位相加即可。原创 2024-05-10 18:51:43 · 191 阅读 · 0 评论 -
Problem: 73. 矩阵置零
一开始看到后并没有任何思路,随便看了下提示便开始写,没想到一次就通过了。空间复杂度: 在我看来是O(1),但是不太确定。时间复杂度: O(n²)见代码,非常容易理解。原创 2024-05-10 18:31:31 · 126 阅读 · 0 评论