![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
力扣Python
文章平均质量分 96
leetcode Python3
Castle Yeager
这个作者很懒,什么都没留下…
展开
-
第十一届蓝桥杯第二次省赛Java研究生组 Python版
引言博主尝试用Python语言去写其他语言组别的试题,按逆序刷的话,今天先做一套十一届Java研究生组的试题。试题A:约数个数本题考察的是质因数的知识,由于是填空题,所以直接从1开始遍历到根号78120,判断每一个数是否能整除78120即可。比较基础。res = 0for i in range(1, 78120+1): res += 1 if 78120 % i == 0 else 0print(res)# 输出 96注意Python遵循左闭右开的原则,所以右边是78120 +原创 2021-04-08 23:49:25 · 1961 阅读 · 0 评论 -
第十一届蓝桥杯省赛第二场 Python组
引言博主没有参加第十一届蓝桥杯,这是在官网上找到的历年真题,按年份倒序刷吧。我会以Python语言的角度去分析题目的考点。填空题1本题考察的点是Python字符串处理函数中的count()函数,具体用处是统计字符串中出现子串的次数。我们把题目要求的 2 当作子串,统计从 1 到 2020 这些字符串中出现子串 2 的次数即可。res = 0for num in range(1, 2021): res += str(num).count('2')print(res)# 输出624原创 2021-04-06 23:50:44 · 913 阅读 · 3 评论 -
力扣605 种花问题
力扣605 种花问题题干假设你有一个很长的花坛,一部分地块种植了花,另一部分却没有。可是,花卉不能种植在相邻的地块上,它们会争夺水源,两者都会死去。给定一个花坛(表示为一个数组包含0和1,其中0表示没种植花,1表示种植了花),和一个数 n 。能否在不打破种植规则的情况下种入 n朵花?能则返回True,不能则返回False。示例输入: flowerbed = [1,0,0,0,1], n = 1输出: True输入: flowerbed = [1,0,0,0,1], n = 2原创 2020-12-28 23:42:16 · 342 阅读 · 1 评论 -
力扣566 重塑矩阵
力扣566 重塑矩阵题干在MATLAB中,有一个非常有用的函数 reshape,它可以将一个矩阵重塑为另一个大小不同的新矩阵,但保留其原始数据。给出一个由二维数组表示的矩阵,以及两个正整数r和c,分别表示想要的重构的矩阵的行数和列数。重构后的矩阵需要将原始矩阵的所有元素以相同的行遍历顺序填充。如果具有给定参数的reshape操作是可行且合理的,则输出新的重塑矩阵;否则,输出原始矩阵。示例输入: nums = [[1,2], [3,4]] r = 1, c = 4 输出: [[1,原创 2020-12-28 21:38:59 · 119 阅读 · 0 评论 -
力扣561 数组拆分1
力扣561 数组拆分1题干给定长度为 2n 的整数数组 nums ,你的任务是将这些数分成 n 对, 例如 (a1, b1), (a2, b2), …, (an, bn) ,使得从 1 到 n 的 min(ai, bi) 总和最大。返回该 最大总和 。示例输入:nums = [1,4,3,2] 输出:4 解释:所有可能的分法(忽略元素顺序)为:(1, 4), (2, 3) -> min(1, 4) + min(2, 3) = 1 + 2 = 3(1, 3), (2, 4) -&原创 2020-12-28 19:45:54 · 146 阅读 · 0 评论 -
力扣485 最大连续1的个数
力扣485 最大连续1的个数题干给定一个二进制数组, 计算其中最大连续1的个数。示例输入: [1,1,0,1,1,1]输出: 3解释: 开头的两位和最后的三位都是连续1,所以最大连续1的个数是 3.注意:输入的数组只包含 0 和1。 输入数组的长度是正整数,且不超过 10,000。解析刷到这道题的第一印象就是和之前的力扣053 最大子序和非常相似。可以用动态规划(DP)的思想来解。本题数组是一个线性结构,只需要用一个一维数组即可求解,关键是如何找出当前元素和上一个元素之间的原创 2020-12-28 18:50:34 · 118 阅读 · 0 评论 -
力扣448 找到所有数组中消失的数字
力扣448 找到所有数组中消失的数字题干给定一个范围在 1 ≤ a[i] ≤ n ( n = 数组大小 ) 的 整型数组,数组中的元素一些出现了两次,另一些只出现一次。找到所有在 [1, n] 范围之间没有出现在数组中的数字。您能在不使用额外空间且时间复杂度为O(n)的情况下完成这个任务吗? 你可以假定返回的数组不算在额外空间内。示例输入:[4,3,2,7,8,2,3,1]输出: [5,6]解析说一下本人怎么理解本题的。首先给定数组长度为n ,正常来说是可以满足 数字原创 2020-12-27 21:55:42 · 219 阅读 · 0 评论 -
力扣088 合并两个有序数组
力扣088 合并两个有序数组题干给你两个有序整数数组 nums1 和 nums2,请你将 nums2 合并到 nums1 中,使 nums1 成为一个有序数组。说明:初始化 nums1 和 nums2 的元素数量分别为 m 和 n 。 你可以假设 nums1 有足够的空间(空间大小大于或等于 m +n)来保存 nums2 中的元素。示例输入:nums1 = [1,2,3,0,0,0], m = 3nums2 = [2,5,6], n = 3输出:[1,2,2,3,5原创 2020-12-07 16:39:54 · 149 阅读 · 0 评论 -
力扣066 加一
力扣066 加一题干给定一个由 整数 组成的 非空 数组所表示的非负整数,在该数的基础上加一。最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。你可以假设除了整数 0 之外,这个整数不会以零开头。示例输入:digits = [1,2,3]输出:[1,2,4]解释:输入数组表示数字 123。输入:digits = [4,3,2,1]输出:[4,3,2,2]解释:输入数组表示数字 4321。输入:digits = [0]输出:[1]解析1、常规法本题的常原创 2020-12-06 21:39:11 · 115 阅读 · 0 评论 -
力扣053 最大子序和
力扣053 最大子序和题干给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。示例输入: [-2,1,-3,4,-1,2,1,-5,4]输出: 6解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。解析子序和这个问题研一考算法的时候考过,所以有印象是考察动态规划(DP)的题目,所以也就往那方面思考了,数组作为一个线性结构,解本题也是用不到二维数组的,用一维数组就足够了。我们可以构造一个新数组results,长度和原数组num原创 2020-12-06 20:11:26 · 136 阅读 · 0 评论 -
力扣035 搜索插入位置
力扣035 搜索插入位置题干给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。你可以假设数组中无重复元素。示例输入: [1,3,5,6], 5输出: 2输入: [1,3,5,6], 2输出: 1输入: [1,3,5,6], 7输出: 4输入: [1,3,5,6], 0输出: 0解析本题的标签中有一个二分查找,但是我现在还不想思考二分查找的方法,感觉脑子不够用了,所以就用O(N)的方法吧,二分原创 2020-12-06 17:59:48 · 128 阅读 · 0 评论 -
力扣027 移除元素
力扣027 移除元素题干给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。示例给定 nums = [3,2,2,3], val = 3,函数应该返回新的长度 2, 并且 nums 中的前两个元素均为 2。你不需要考虑数组中超出新长度后面的元素。给定 nums = [0,1,2,原创 2020-12-06 17:40:09 · 122 阅读 · 0 评论 -
力扣026 删除排序数组中的重复项
力扣026 删除排序数组中的重复项题干给定一个排序数组,你需要在 原地 删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。示例给定数组 nums = [1,1,2],函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为 1, 2。你不需要考虑数组中超出新长度后面的元素。给定 nums = [0,0,1,1,1,2,2,3,3,4],函数应该返回新的长原创 2020-12-06 15:14:43 · 152 阅读 · 0 评论 -
力扣001 两数之和
力扣001 两数之和题干给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。示例给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9 所以返回 [0, 1]解析1、暴力破解——双循环主要想法:外循环遍历全部元素,确定第一个数 num1。确定num1后,从nu原创 2020-12-05 20:46:08 · 111 阅读 · 1 评论