
算法与数据结构
文章平均质量分 53
本硕计算机专业,目前某短视频大厂在职员工。
优惠券已抵扣
余额抵扣
还需支付
¥99.90
¥299.90
购买须知?
本专栏为图文内容,最终完结不会低于15篇文章。
订阅专栏,享有专栏所有文章阅读权限。
本专栏为虚拟商品,基于网络商品和虚拟商品的性质和特征,专栏一经购买无正当理由不予退款,不支持升级,敬请谅解。
nuist__NJUPT
本硕计算机专业,目前某短视频大厂在职员工,曾于阿里子公司哈啰出行等实习,已发SCI论文,拥有多项发明和实用新型专利,华为杯等多项国家级和省级竞赛获奖,喜欢编程,leetcode刷题狂,擅长Java、Python、JS、Matlab、C等编程语言,前端、后端、移动端都能写,算法也会一些,热爱运动,热爱生活!
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Leetcode刷题(96~100)
本文分享了5道二叉树相关算法题的解题思路和Java代码实现:1.不同二叉搜索树的数量(动态规划);2.交错字符串的验证(动态规划);3.验证二叉搜索树(递归或中序遍历);4.恢复二叉搜索树(略);5.判断两棵树是否相同(递归比较)。文章强调算法是程序员的基本功,建议保持刷题习惯,以平和心态面对挑战。代码示例展示了动态规划在树问题中的应用以及递归的典型使用场景。原创 2025-06-30 20:36:06 · 45 阅读 · 0 评论 -
Leetcode刷题(91~95)
算法是码农的基本功,也是各个大厂必考察的重点,让我们一起坚持写题吧。遇事不决,可问春风,春风不语,即是本心。我们在我们能力范围内,做好我们该做的事,然后相信一切都事最好的安排就可以啦,慢慢来,会很快,向前走,别回头。原创 2025-06-11 17:53:38 · 95 阅读 · 0 评论 -
Leetcode刷题(81~90)
算法是码农的基本功,也是各个大厂必考察的重点,让我们一起坚持写题吧。遇事不决,可问春风,春风不语,即是本心。我们在我们能力范围内,做好我们该做的事,然后相信一切都事最好的安排就可以啦,慢慢来,会很快,向前走,别回头。原创 2024-12-08 21:08:40 · 858 阅读 · 0 评论 -
leetcode刷题(76-80)
算法是码农的基本功,也是各个大厂必考察的重点,让我们一起坚持写题吧。遇事不决,可问春风,春风不语,即是本心。我们在我们能力范围内,做好我们该做的事,然后相信一切都事最好的安排就可以啦,慢慢来,会很快,向前走,别回头。原创 2024-10-27 12:39:44 · 1087 阅读 · 0 评论 -
leetcode刷题(71-75)
算法是码农的基本功,也是各个大厂必考察的重点,让我们一起坚持写题吧。遇事不决,可问春风,春风不语,即是本心。我们在我们能力范围内,做好我们该做的事,然后相信一切都事最好的安排就可以啦,慢慢来,会很快,向前走,别回头。原创 2024-09-21 12:26:42 · 754 阅读 · 0 评论 -
leetcode刷题(66-70)
算法是码农的基本功,也是各个大厂必考察的重点,让我们一起坚持写题吧。遇事不决,可问春风,春风不语,即是本心。我们在我们能力范围内,做好我们该做的事,然后相信一切都事最好的安排就可以啦,慢慢来,会很快,向前走,别回头。原创 2024-08-17 18:20:55 · 1197 阅读 · 0 评论 -
leetcode刷题(61-65)
算法是码农的基本功,也是各个大厂必考察的重点,让我们一起坚持写题吧。遇事不决,可问春风,春风不语,即是本心。我们在我们能力范围内,做好我们该做的事,然后相信一切都事最好的安排就可以啦,慢慢来,会很快,向前走,别回头。原创 2024-07-13 17:00:28 · 1269 阅读 · 0 评论 -
leetcode刷题(46-50)
算法是码农的基本功,也是各个大厂必考察的重点,让我们一起坚持写题吧。遇事不决,可问春风,春风不语,即是本心。我们在我们能力范围内,做好我们该做的事,然后相信一切都事最好的安排就可以啦,慢慢来,会很快,向前走,别回头。原创 2024-06-19 21:43:01 · 958 阅读 · 0 评论 -
Leetcode刷题-(41~45)-Java
算法是码农的基本功,也是各个大厂必考察的重点,让我们一起坚持写题吧。遇事不决,可问春风,春风不语,即是本心。我们在我们能力范围内,做好我们该做的事,然后相信一切都事最好的安排就可以啦,慢慢来,会很快,向前走,别回头。原创 2024-05-05 18:41:45 · 1393 阅读 · 1 评论 -
Leetcode刷题-(36~40)-Java
算法是码农的基本功,也是各个大厂必考察的重点,让我们一起坚持刷算法题吧。遇事不决,可问春风,春风不语,即是本心。我们在我们能力范围内,做好我们该做的事,然后相信一切都事最好的安排就可以啦,慢慢来,会很快,向前走,别回头。原创 2024-04-27 18:02:12 · 851 阅读 · 3 评论 -
Leetcode刷题-(21~25)-Java
算法是码农的基本功,也是各个大厂必考察的重点,让我们一起坚持写算法题吧。遇事不决,可问春风,春风不语,即是本心。我们在我们能力范围内,做好我们该做的事,然后相信一切都事最好的安排就可以啦,慢慢来,会很快,向前走,别回头。原创 2024-03-16 16:45:20 · 1061 阅读 · 0 评论 -
Leetcode刷题-(16~20)-Java+Python+JavaScript
算法是程序员的基本功,也是各个大厂必考察的重点,让我们一起坚持写算法题吧遇事不决,可问春风,春风不语,即是本心。我们在我们能力范围内,做好我们该做的事,然后相信一切都事最好的安排就可以啦,慢慢来,会很快,向前走,别回头。原创 2024-03-04 16:13:37 · 1089 阅读 · 1 评论 -
Leetcode刷题-(11~15)-Java+Python+JavaScript
算法是程序员的基本功,也是各个大厂必考察的重点,让我们一起坚持写算法题吧遇事不决,可问春风,春风不语,即是本心。我们在我们能力范围内,做好我们该做的事,然后相信一切都事最好的安排就可以啦,慢慢来,会很快,向前走,别回头。原创 2024-02-06 23:17:15 · 1419 阅读 · 0 评论 -
Leetcode刷题-(6~10)-Java+Python+JavaScript
算法是程序员的基本功,也是各个大厂必考察的重点,让我们一起坚持写算法题吧遇事不决,可问春风,春风不语,即是本心。我们在我们能力范围内,做好我们该做的事,然后相信一切都事最好的安排就可以啦,慢慢来,会很快,向前走,别回头。原创 2024-01-20 20:03:02 · 1161 阅读 · 0 评论 -
Leetcode刷题-(1~5)-Java+Python+JavaScript
算法题是程序员的基本功,也是各个大厂必考察的重点,让我们一起坚持写算法题吧遇事不决,可问春风,春风不语,即是本心。我们在我们能力范围内,做好我们该做的事,然后相信一切都事最好的安排就可以啦,慢慢来,会很快,向前走,别回头。原创 2024-01-17 15:45:01 · 1206 阅读 · 0 评论 -
九韶杯-题解(Java)
目录A题:6的个数B题:小明的作业C题:斐波那契D题:数列重组E题:三角形个数F题:字符串G题:最强对手矩阵H题:友谊纽带I题:传送门试题J:井字棋残局A题:6的个数答案:602思路:枚举+计数就可以。public class Main { public static void main(String[] args) { long ans = 0 ; for(int i=1; i<=2021; i原创 2022-03-30 17:45:12 · 1187 阅读 · 0 评论 -
第十二届蓝桥杯大赛软件类省赛Java研究生组-题解
目录试题A:卡片试题B:相乘试题C:直线试题D:路径试题E:回路计数试题F:时间显示试题G:最少砝码试题H:杨辉三角试题I:双向排序试题J:分果果试题A:卡片答案:3181思路:num数组记录0-9的个数,从1开始判断,如果数字的各位中含有字母c,则num[c]减1,直至最后num[c]<0,则不能凑出。public class Main { public static void main(String[] args) {原创 2022-03-28 15:36:13 · 2700 阅读 · 0 评论 -
第十一届蓝桥杯大赛软件类省赛Java研究生组-题解
目录试题A :约数个数试题B:跑步锻炼试题C:平面分割试题D:蛇形填数试题E:排序试题F:成绩统计试题G:回文日期试题H:作物杂交试题I:子串分值试题J:装饰珠试题A :约数个数答案:96思路:简单枚举,注意1和本身也算约数。public class Main { public static void main(String[] args) { int ans = 0 ; for(int i=1; i<原创 2022-03-26 20:46:47 · 2034 阅读 · 0 评论 -
第十届蓝桥杯大赛软件类省赛Java研究生组-题解
目录试题A:立方和试题B:子串数字试题C:质数试题D:最短路试题E:RSA解密试题F:Fibonacci数列与黄金分割试题G:扫地机器人试题H:修改数组试题I:组合数问题试题J:空间跳跃试题A:立方和答案:4097482414389思路:直接枚举就可以,不过要用long,用int会爆的。public class Main { public static void main(String[] args) { long原创 2022-03-20 20:37:41 · 4653 阅读 · 0 评论 -
2020-2021年度第二届全国大学生算法设计与编程挑战赛(冬季赛)——正式赛
A题-塔思路:签到题,26层,第i层先打印26-i个空格,然后正序和逆序打印字符,每一层换一行。public class Main { public static void main(String[] args) { for(int i=1; i<=26; i++){ for(int j=1; j<=26-i; j++){ System.out.print(" "); }原创 2022-03-19 16:45:48 · 933 阅读 · 0 评论 -
2020-2021年度第二届全国大学生算法设计与编程挑战赛 (秋季赛)——正式赛
目录B题-数位dpD题-兰德索尔杯-cupF题-大数据分析G题-数学mathH题-最大化I题-小x的好路-roadB题-数位dp思路:写个方法判断一下就可以了,满足要求的就累加个数。AC代码如下:public class Main { public static void main(String[] args) { int ans = 0 ; for(int i=13930; i<=457439; i++){原创 2022-03-19 16:13:23 · 2293 阅读 · 1 评论 -
【团队赛组】2021-2022年度第三届全国大学生算法设计与编程挑战赛(秋季赛)——热身赛
A题-这是一道压轴题思路:本来想找递推式,没找到,干脆用指针模拟吧,不过这题描述不清晰,真正的意思是至多删除1次,也就是说可以不删除,当字符串全0或者全1就不用删除,输出n即可。AC代码如下:import java.util.Scanner;public class Main { public static void main(String[] args) { Scanner input = new Scanner(System.in) ; ..原创 2022-03-16 18:08:20 · 1133 阅读 · 0 评论 -
【个人赛组】2021-2022年度第三届全国大学生算法设计与编程挑战赛(秋季赛)——热身赛
A题-抽奖思路:逻辑题,需要实时记录当前的星辉数和剩余的发数,只要剩余的星辉数大于等于5,则可以兑换一次发数。AC代码如下:import java.util.Scanner;public class Main { static int x ; static int ans ; static int star ; static int leave ; public static void main(String[] args) { ...原创 2022-03-16 09:22:56 · 771 阅读 · 0 评论 -
【个人赛组】2021-2022年度第三届全国大学生算法设计与编程挑战赛(秋季赛)-正式赛
目录A题-登神长阶C题-网络流E题-老鹰捉小鸡H题-买装备A题-登神长阶思路:注意是t是秒,不是分钟,先转换成分钟,然后就是一个简单的递推了。import java.util.Scanner;//1-登神长阶public class Main { public static void main(String[] args) { Scanner input = new Scanner(System.in) ; ...原创 2022-03-15 16:22:11 · 2946 阅读 · 1 评论 -
leetcode之最短路径+记忆化dfs+bfs+动态规划刷题总结
leetcode之最短路径+记忆化dfs+bfs+动态规划刷题总结最短路:给定两个顶点,在以这两个顶点为起点和终点的路径中,边的权值和最小的路径。最短路径中有几种经典的算法,我们主要练习的是Dijkstra算法和Floyd算法,分别用于解决单元最短路径问题和多源最短路径问题。Dijkstra算法适用于单源最短路径,具体地,找到最短路已经确定的节点,从它出发更新相邻节点的最短距离。Floyd算法适用于多源最短路径,具体地,通过一系列n阶矩阵来计算一个n节点加权图的最短距离。每轮让第k个节点做中转节点,原创 2022-03-10 21:41:46 · 3812 阅读 · 0 评论 -
leetcode之最短路刷题总结1
leetcode之最短路刷题总结1**最短路:**给定两个顶点,在以这两个 顶点为起点和终点的路径中,边的权值和最小的路径。最短路径中有几种经典的算法,我们主要练习的是Dijkstra算法和Floyd算法,分别用于解决单元最短路径问题和多源最短路径问题。Dijkstra算法适用于单源最短路径,具体地,找到最短路已经确定的节点,从它出发更新相邻节点的最短距离。Floyd算法适用于多源最短路径,具体地,通过一系列n阶矩阵来计算一个n节点加权图的最短距离。每轮让第k个节点做中转节点,更新第i个节点到第j个原创 2022-03-09 21:35:27 · 2514 阅读 · 1 评论 -
leetcode之贪心算法刷题总结5
leetcode之贪心算法刷题总结5贪心算法(又称贪婪算法)是指,在对问题求解时,总是做出在当前看来是最好的选择,就能得到问题的答案。贪心算法需要充分挖掘题目中条件,没有固定的模式,解决有贪心算法需要一定的直觉和经验。贪心算法不是对所有问题都能得到整体最优解。能使用贪心算法解决的问题具有「贪心选择性质」。「贪心选择性质」严格意义上需要数学证明。能使用贪心算法解决的问题必须具备「无后效性」,即某个状态以前的过程不会影响以后的状态,只与当前状态有关。1-使数组唯一的最小增量题目链接:题目链接戳这里!!!原创 2022-03-08 21:37:55 · 744 阅读 · 0 评论 -
leetcode之贪心算法刷题总结4
leetcode之贪心算法刷题总结4贪心算法(又称贪婪算法)是指,在对问题求解时,总是做出在当前看来是最好的选择,就能得到问题的答案。贪心算法需要充分挖掘题目中条件,没有固定的模式,解决有贪心算法需要一定的直觉和经验。贪心算法不是对所有问题都能得到整体最优解。能使用贪心算法解决的问题具有「贪心选择性质」。「贪心选择性质」严格意义上需要数学证明。能使用贪心算法解决的问题必须具备「无后效性」,即某个状态以前的过程不会影响以后的状态,只与当前状态有关。1-最长快乐字符串题目链接:题目链接戳这里!!!思路原创 2022-03-07 21:30:55 · 1001 阅读 · 0 评论 -
leetcode之贪心算法刷题总结3
leetcode之贪心算法刷题总结3贪心算法(又称贪婪算法)是指,在对问题求解时,总是做出在当前看来是最好的选择,就能得到问题的答案。贪心算法需要充分挖掘题目中条件,没有固定的模式,解决有贪心算法需要一定的直觉和经验。贪心算法不是对所有问题都能得到整体最优解。能使用贪心算法解决的问题具有「贪心选择性质」。「贪心选择性质」严格意义上需要数学证明。能使用贪心算法解决的问题必须具备「无后效性」,即某个状态以前的过程不会影响以后的状态,只与当前状态有关。1-煎饼排序题目链接:题目链接戳这里!!!思路:这题原创 2022-03-06 21:46:56 · 819 阅读 · 0 评论 -
leetcode之贪心算法刷题总结2
leetcode之贪心算法刷题总结2贪心算法(又称贪婪算法)是指,在对问题求解时,总是做出在当前看来是最好的选择,就能得到问题的答案。贪心算法需要充分挖掘题目中条件,没有固定的模式,解决有贪心算法需要一定的直觉和经验。贪心算法不是对所有问题都能得到整体最优解。能使用贪心算法解决的问题具有「贪心选择性质」。「贪心选择性质」严格意义上需要数学证明。能使用贪心算法解决的问题必须具备「无后效性」,即某个状态以前的过程不会影响以后的状态,只与当前状态有关。1-数组拆分I题目链接:题目链接戳这里!!!思路:原创 2022-03-05 21:38:03 · 712 阅读 · 0 评论 -
leetcode之动态规划刷题总结8
leetcode之动态规划刷题总结8动态规划(英语:Dynamic programming,简称 DP)是一种在数学、管理科学、计算机科学、经济学和生物信息学中使用的,通过把原问题分解为相对简单的子问题的方式求解复杂问题的方法。动态规划常常适用于有重叠子问题和最优子结构性质的问题,并且记录所有子问题的结果,因此动态规划方法所耗时间往往远少于朴素解法。动态规划有自底向上和自顶向下两种解决问题的方式。自顶向下即记忆化递归,自底向上就是递推。使用动态规划解决的问题有个明显的特点,一旦一个子问题的求解得到结原创 2022-03-04 21:42:29 · 410 阅读 · 0 评论 -
leetcode之动态规划刷题总结7
leetcode之动态规划刷题总结7动态规划(英语:Dynamic programming,简称 DP)是一种在数学、管理科学、计算机科学、经济学和生物信息学中使用的,通过把原问题分解为相对简单的子问题的方式求解复杂问题的方法。动态规划常常适用于有重叠子问题和最优子结构性质的问题,并且记录所有子问题的结果,因此动态规划方法所耗时间往往远少于朴素解法。动态规划有自底向上和自顶向下两种解决问题的方式。自顶向下即记忆化递归,自底向上就是递推。使用动态规划解决的问题有个明显的特点,一旦一个子问题的求解得到结原创 2022-03-03 21:36:57 · 581 阅读 · 0 评论 -
leetcode之动态规划刷题总结6
leetcode之动态规划刷题总结6动态规划(英语:Dynamic programming,简称 DP)是一种在数学、管理科学、计算机科学、经济学和生物信息学中使用的,通过把原问题分解为相对简单的子问题的方式求解复杂问题的方法。动态规划常常适用于有重叠子问题和最优子结构性质的问题,并且记录所有子问题的结果,因此动态规划方法所耗时间往往远少于朴素解法。动态规划有自底向上和自顶向下两种解决问题的方式。自顶向下即记忆化递归,自底向上就是递推。使用动态规划解决的问题有个明显的特点,一旦一个子问题的求解得到结原创 2022-03-02 21:47:06 · 413 阅读 · 0 评论 -
leetcode之回溯刷题总结3
leetcode之回溯刷题总结31-复原IP地址题目链接:题目链接戳这里!!!思路:回溯法依次枚举截取的字符串,如果满足要求,继续枚举,否则,回到原来的状态,直到每次出现了三个逗号,并且后面的字符串满足IP地址的要求,则最终的合格IP地址加入集合。class Solution { List<String> res = new ArrayList<>() ; StringBuffer path = new StringBuffer() ; pu原创 2022-03-01 21:07:59 · 416 阅读 · 0 评论 -
leetcode之并查集+记忆化搜索+回溯+最小生成树刷题总结1
leetcode之并查集+记忆化搜索+回溯+最小生成树刷题总结11-连接所有点的最小费用题目连接:题目连接戳这里!!!思路:cruskal+并查集根据题意,我们得到了一张 n 个节点的完全图,任意两点之间的距离均为它们的曼哈顿距离。现在我们需要在这个图中取得一个子图,恰满足子图的任意两点之间有且仅有一条简单路径,且这个子图的所有边的总权值之和尽可能小。能够满足任意两点之间有且仅有一条简单路径只有树,且这棵树包含 n 个节点。我们称这棵树为给定的图的生成树,其中总权值最小的生成树,我们称其为最小生成树原创 2022-02-28 21:53:37 · 666 阅读 · 0 评论 -
leetcode之DFS+BFS+DSU刷题总结2
leetcode之DFS+BFS+DSU刷题总结21-对称二叉树题目链接:题目链接戳这里!!!思路1:迭代法一棵二叉树,左右子树分别进队,如果左右子树都为空,则结束遍历,如果左右子树仅一个为空,或左右子树根节点不同,则返回false,否则 ,按照左节点的左子树,右节点的右子树,左节点的右子树,右节点的左子树顺序入队。/** * Definition for a binary tree node. * public class TreeNode { * int val; *原创 2022-02-27 21:47:17 · 484 阅读 · 0 评论 -
leetcode之DFS+BFS+DSU刷题总结1
leetcode之深度优先搜索and广度优先搜索刷题总结11-所有可能的路径题目链接:题目链接戳这里!!!思路:dfs搜索所有路径,并用栈记录。class Solution { Stack<Integer> stack = new Stack<>() ; List<List<Integer>> list = new ArrayList<>() ; public List<List<Integer>&原创 2022-02-26 21:41:46 · 638 阅读 · 0 评论 -
leetcode之模拟刷题总结3
leetcode之模拟刷题总结31-转置矩阵题目链接:题目链接戳这里!!!思路:对应行的值放到对应列即可,easy题一道,先做一道easy题,自我安慰安慰。class Solution { public int[][] transpose(int[][] matrix) { int m = matrix.length ; int n = matrix[0].length ; int [][] ans = new int [n][m] ;原创 2022-02-25 21:49:18 · 549 阅读 · 0 评论 -
leetcode之哈希表刷题总结1
leetcode之哈希表刷题总结11-两数之和题目链接:题目链接这里!!!思路:本题不难,但也没有想象的那么简单,需要使用hash表,把时间复杂度控制到O(n)内。不用hash表就是O(n^2)的复杂度,会超时。class Solution { public int[] twoSum(int[] nums, int target) { Map<Integer,Integer> map = new HashMap<>() ; int [原创 2022-02-24 21:47:19 · 545 阅读 · 0 评论 -
leetcode之拓扑排序刷题总结1
leetcode之拓扑排序刷题总结11-喧闹和富有题目链接:题目链接戳这里!!!思路1:邻接表+dfs把richer数组按照class Solution { public int[] loudAndRich(int[][] richer, int[] quiet) { int m = quiet.length ; int [] ans = new int [m] ; Arrays.fill(ans,-1) ; List<原创 2022-02-23 20:07:39 · 624 阅读 · 0 评论