jjzjj

LeetCode

全部标签

LeetCode每日一题——902. 最大为 N 的数字组合

LeetCode每日一题系列题目:902.最大为N的数字组合难度:困难文章目录LeetCode每日一题系列题目示例思路题解题目给定一个按非递减顺序排列的数字数组digits。你可以用任意次数digits[i]来写的数字。例如,如果digits=[‘1’,‘3’,‘5’],我们可以写数字,如‘13’,‘551’,和‘1351315’。返回可以生成的小于或等于给定整数n的正整数的个数。示例示例1:输入:digits=[“1”,“3”,“5”,“7”],n=100输出:20解释:可写出的20个数字是:1,3,5,7,11,13,15,17,31,33,35,37,51,53,55,57,71,73,

代码随想录训练营第二天 | 977.有序数组的平方、209.长度最小的子数组 、59.螺旋矩阵II

977有序数组的平方题目给你一个按非递减顺序排序的整数数组nums,返回每个数字的平方组成的新数组,要求也按非递减顺序排序977.有序数组的平方思路找到分段点,然后双有序数组插入新数组(i++,j--这样遍历)代码 classSolution{   publicint[]sortedSquares(int[]nums){     intlen=nums.length;     if(len==0)returnnums;//空集直接结束     int[]neg=newint[len];     int[]pos=newint[len];     int[]ans=newint[len];   

贪心算法(四)

4.更多练习题4)力扣https://leetcode.cn/problems/best-time-to-buy-and-sell-stock-ii/这道题运用贪心算法,就是每天只考虑与前一天的差价,只要差价大于零,从局部最优来考虑,就应该卖出前一天的股票。这样可以得到全局最优解。classSolution{public:intmaxProfit(vector&prices){intn=prices.size();intres=0;for(inti=1;i5)力扣https://leetcode.cn/problems/queue-reconstruction-by-height/这道题的第二

( “树” 之 DFS) 101. 对称二叉树 ——【Leetcode每日一题】

101.对称二叉树给你一个二叉树的根节点root,检查它是否轴对称。示例1:输入:root=[1,2,2,3,4,4,3]输出:true示例2:输入:root=[1,2,2,null,3,null,3]输出:false提示:树中节点数目在范围[1,1000]内-100进阶:你可以运用递归和迭代两种方法解决这个问题吗?思路:递归递归结束条件:都为空指针则返回true;只有一个为空或者对应节点值不相等,则返回false。递归过程:判断A的右子树与B的左子树是否对称;判断A的左子树与B的右子树是否对称;只有都相等时,才返回true。代码:(Java、C++)Java/***Definitionfor

【数据结构】二叉树OJ练习

👑作者主页:@进击的安度因🏠学习社区:进击的安度因(个人社区)📖专栏链接:数据结构文章目录一、二叉树的最小深度二、单值二叉树三、相同的树四、另一棵树的子树五、翻转二叉树六、对称二叉树七、二叉树的前序遍历八、平衡二叉树如果无聊的话,就来逛逛我的博客栈吧!🌹今天为大家带来了leetcode中的八道二叉树OJ题,让我们一起刷题吧!一、二叉树的最小深度链接:111.二叉树的最小深度描述:给定一个二叉树,找出其最小深度。最小深度是从根节点到最近叶子节点的最短路径上的节点数量。说明:叶子节点是指没有子节点的节点。示例1:输入:root=[3,9,20,null,null,15,7]输出:2示例2:输入:r

算法学习(10):LeetCode刷题之Dijkstra最短路径算法

前言:迪杰斯特拉(Dijkstra)最短路径算法是求有向加权图中某个节点到其他节点的最短路径。“图”这种数据结构的具体实现就是“邻接矩阵”或者“邻接表”。比如上面这个图,用邻接表或者邻接矩阵的存储方式如下,图中的节点一般抽象成一个数字(即下标或索引):首先,我们来确定一下Dijkstra算法的签名://输入一个起点和一个图(邻接矩阵表示),返回start到其他节点的最短路径,节点的值作为返回数组的下标int[]dijkstra(intstart,int[][]graph)最短路径算法的思路可以由BFS算法进行扩展,之前我们学习过二叉树的层序遍历和网格型BFS的方法,BFS其实就是while循环

【C语言】统计素数并求和

 改名字了,2022.2.26之前叫回到正题,由题可知,题目要求在用户自己输入的定整数M和N区间内求出素数的个数,并且对他们求和。要想解决编程题目,首先要知道题目问的是什么。素数一般指质数。质数是指在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数。简而言之就是一个数字n只能被1和它本身整除(n>1,不包含1本身,即从2开始计数)。知道了这些就可以往下进行了。首先我们需要两个变量,用来存放输入的两个定整数,即:#includeintmain(){intm,n;scanf("%d%d",&m,&n);}(为了方便了解,下面只写main函数里面的代码。)由此即可输入两个数字m,和n其次我

LeetCode:150. 逆波兰表达式求值—栈

🍎道阻且长,行则将至。🍓🌻算法,不如说它是一种思考方式🍀算法专栏:👉🏻123一、🌱150.逆波兰表达式求值题目描述:给你一个字符串数组tokens,表示一个根据逆波兰表示法表示的算术表达式。请你计算该表达式。返回一个表示表达式值的整数。来源:力扣(LeetCode)难度:简单提示:1tokens[i]是一个算符("+"、"-"、"*"或"/"),或是在范围[-200,200]内的一个整数注意:有效的算符为'+'、'-'、'*'和'/'。每个操作数(运算对象)都可以是一个整数或者另一个表达式。两个整数之间的除法总是向零截断。表达式中不含除零运算。输入是一个根据逆波兰表示法表示的算术表达式。答案及

【代码随想录训练营】【Day23】第六章|二叉树|669. 修剪二叉搜索树 |108.将有序数组转换为二叉搜索树|538.把二叉搜索树转换为累加树

修剪二叉搜索树题目详细:LeetCode.669做这道题之前建议先看视频讲解,没有想象中那么复杂:代码随想录—修剪二叉搜索树由题可知,需要删除节点值不在区间内的节点,所以可以得到三种情况:情况一:root.val情况二:root.val>high情况三:low当节点满足情况一和情况二的条件时,删除该节点但被删除节点的子树可能存在值在区间内的节点,利用二叉搜索树的特点可得:情况一:root.val情况二:root.val>high,root左子树上的节点值都比root.val小,右子树上的节点值都比root.val大,所以满足区间的节点只会在左子树上出现,递归修剪其左子树并返回新的子节点情况三:

团灭LeetCode跳跃游戏(相关话题:贪心,BFS)

目录LeetCode55跳跃游戏LeetCode45. 跳跃游戏IILeetCode1306. 跳跃游戏IIILeetCode1345. 跳跃游戏IV解题总结