输入关键词开始搜索
leetcode动态规划基础练习题

leetcode动态规划基础练习题

509. 斐波那契数 这个题目根据题意,暴力解法就是一个简单的递归,求$fib(n)$的值,我们求$fib(n-1)+fib(n-2)$就可以了。当n是0,1,2的时候就是fib函数的一个基础状态。终止递归的条件。但是这个效率很低,时间复杂度是$O(2^n)$。 class Solution:

算法题
5月 飞行雪绒
leetcode二叉树基础练习题

leetcode二叉树基础练习题

104. 二叉树的最大深度 这个题我们用两种思路考虑,第一种是分解的思路,求root的最大深度,那不就是左子树和右子树的最大深度加1就行了,对于左子树来说,它的最大深度又是它的左右子树的最大深度加1,对于每个节点,考虑的问题是一样的。对于代码,如果一个节点为None,深度也就是0,这是递归的终止条件

算法题
5月 飞行雪绒
leetcode-1979. 找出数组的最大公约数

leetcode-1979. 找出数组的最大公约数

题目链接:1979. 找出数组的最大公约数 这个题还是非常简单的,返回数组最大数和最小数的最大公约数,我们要找最大数和最小数,直接排个序不就行了. Python代码如下: import math class Solution: def findGCD(self, nums: List[int

算法题
4月 飞行雪绒
洛谷-P1029 [NOIP 2001 普及组] 最大公约数和最小公倍数问题

洛谷-P1029 [NOIP 2001 普及组] 最大公约数和最小公倍数问题

题目链接:P1029 [NOIP 2001 普及组] 最大公约数和最小公倍数问题 这个题可以先读题,先输入x0和y0,然后需要求P,Q,这两个数的最大公约数是x0,最大公倍数是y0.求有多少个这样的P,Q 我们简单的想到穷举.因为x0是两个数字的公约数,那这个数一定能被x0整除,所以我们从x0穷举,

算法题
4月 飞行雪绒
洛谷-B3634 最大公约数和最小公倍数

洛谷-B3634 最大公约数和最小公倍数

题目链接:B3634 最大公约数和最小公倍数 求最大公约数需要用辗转相除法.例如找24和16的最大公约数 16%24=0......16 24%16=1......8 16%8=2......0 8%0=? 就是拿一个数当除数,一个数当被除数,谁在前都无所谓,如果前面的小,第二轮也会替换位置的,然后

算法题
4月 飞行雪绒
洛谷-P10424 [蓝桥杯 2024 省 B] 好数

洛谷-P10424 [蓝桥杯 2024 省 B] 好数

题目链接:P10424 [蓝桥杯 2024 省 B] 好数 这个题求1-N之间的好数,也就是一个数字从低位到高位,奇数位是奇数,偶数位是偶数,就是一个好数. 直接for循环从1遍历到n.然后分别判断每个数是不是好数即可. cpp代码如下: #include<iostream> using names

算法题
4月 飞行雪绒
洛谷-P8716 [蓝桥杯 2020 省 AB2] 回文日期

洛谷-P8716 [蓝桥杯 2020 省 AB2] 回文日期

题目链接:P8716 [蓝桥杯 2020 省 AB2] 回文日期 这个题我一开始的想法是直接从输入的数字遍历到99999999,然后判断每一个数是不是回文数.但是很明显超时了.虽然是O(n)复杂度,但是几千万次循环也是很多的. 然后我们可以想,对于一个确定的年份,比如2012,那它对应的回文日期肯定

算法题
4月 飞行雪绒
leetcode-2226. 每个小孩最多能分到多少糖果

leetcode-2226. 每个小孩最多能分到多少糖果

题目链接: 2226. 每个小孩最多能分到多少糖果 这个题我们先看一下样例1.[5,8,6],将8和6进行拆分,变成[5,5,3,5,1]然后三个孩子分别拿走3个5,每个孩子最多能分到的糖果就是5个.然后看题意,每个孩子只能拿一堆.多余的堆是可以舍弃不要的. 然后样例2的话,糖果是[2,5],加起来

算法题
4月 飞行雪绒
leetcode-2563. 统计公平数对的数目

leetcode-2563. 统计公平数对的数目

2563. 统计公平数对的数目 这个题求公平对的和在[lower,upper]内.就是数字两两组合,看在不在这个区间,所以答案和数据的顺序就无关,我们可以先进行一个排序. 然后对于$lower\le x+y\le upper$,可以变形为$low

算法题
4月 飞行雪绒
洛谷-P8218 【深进1.例1】求区间和

洛谷-P8218 【深进1.例1】求区间和

P8218 【深进1.例1】求区间和 如果就按题意,我们简单的想的话,那就是这个题读取完数据,然后再读区间,确定起始索引和终止索引.然后用for循环对这个区间求和就可以了. python代码如下: import sys input = lambda: sys.stdin.readline().st

算法题
4月 飞行雪绒