Python
共 15 篇文章
leetcode-179. 最大数
179. 最大数 这个题,如果用简单的数字进行比较,肯定是行不通的,例如样例2的输入[3,30,34,5,9],如果单纯比较大小,30比9大,但是930反而是比309更大的。如果转换成字符串,用字典序排序,又存在3和30,因为3没有第二位,第一位又相同,就导致30字典序更大排在前面,但是330是比3
leetcode-1438. 绝对差不超过限制的最长连续子数组
1438. 绝对差不超过限制的最长连续子数组 这个题目看到要找一个最长连续的子数组,就可以知道肯定是要
leetcode动态规划基础练习题
509. 斐波那契数 这个题目根据题意,暴力解法就是一个简单的递归,求$fib(n)$的值,我们求$fib(n-1)+fib(n-2)$就可以了。当n是0,1,2的时候就是fib函数的一个基础状态。终止递归的条件。但是这个效率很低,时间复杂度是$O(2^n)$。 class Solution:
leetcode二叉树基础练习题
104. 二叉树的最大深度 这个题我们用两种思路考虑,第一种是分解的思路,求root的最大深度,那不就是左子树和右子树的最大深度加1就行了,对于左子树来说,它的最大深度又是它的左右子树的最大深度加1,对于每个节点,考虑的问题是一样的。对于代码,如果一个节点为None,深度也就是0,这是递归的终止条件
leetcode数组双指针练习题
26. 删除有序数组中的重复项 如果不是原地修改,我们完全可以new一个新数组,然后从头到尾遍历一遍,把不重复的元素添加到新数组里面。但是这个题要求原地修改,也就是只能在原数组上面进行一些操作。使用快慢双指针。让快指针在前面走。遇到相同的就跳过继续往后走,遇到不同的,就让s
leetcode链表双指针练习题
21. 合并两个有序链表 将两个升序链表合并成新的升序链表,只需要创建一个新的链表,把两个指针分别放到链表A和链表B的头部,然后不停的
leetcode-1979. 找出数组的最大公约数
题目链接:1979. 找出数组的最大公约数 这个题还是非常简单的,返回数组最大数和最小数的最大公约数,我们要找最大数和最小数,直接排个序不就行了. Python代码如下: import math class Solution: def findGCD(self, nums: List[int
洛谷-P1029 [NOIP 2001 普及组] 最大公约数和最小公倍数问题
题目链接:P1029 [NOIP 2001 普及组] 最大公约数和最小公倍数问题 这个题可以先读题,先输入x0和y0,然后需要求P,Q,这两个数的最大公约数是x0,最大公倍数是y0.求有多少个这样的P,Q 我们简单的想到穷举.因为x0是两个数字的公约数,那这个数一定能被x0整除,所以我们从x0穷举,
洛谷-B3634 最大公约数和最小公倍数
题目链接:B3634 最大公约数和最小公倍数 求最大公约数需要用辗转相除法.例如找24和16的最大公约数 16%24=0......16 24%16=1......8 16%8=2......0 8%0=? 就是拿一个数当除数,一个数当被除数,谁在前都无所谓,如果前面的小,第二轮也会替换位置的,然后
洛谷-P10424 [蓝桥杯 2024 省 B] 好数
题目链接:P10424 [蓝桥杯 2024 省 B] 好数 这个题求1-N之间的好数,也就是一个数字从低位到高位,奇数位是奇数,偶数位是偶数,就是一个好数. 直接for循环从1遍历到n.然后分别判断每个数是不是好数即可. cpp代码如下: #include<iostream> using names