自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(46)
  • 收藏
  • 关注

原创 算法五大排序(Java)

思路:在一个数组中,将当前的索引的值与后一个做比较如果更大就交换,直到交换到最后一位。详细实现:第一个for循环控制总体遍历的次数。为什么是判断条件是n - 1呢?因为只剩一个数的时候就不需要进行排序了。第二个for循环是为了交换元素,比较大小,大的向后移动。为什么要引入swaped变量呢?是一种优化思路,如果是个有序数组,就不用交换了。节约资源消耗。

2024-10-24 00:37:50 349 1

原创 Day44 | 图论理论基础 98. 所有可达路径

今天开始图论了,但是感觉还是有点不理解,等明天做题再看看。继续加油!

2024-08-21 13:56:02 797

原创 Day43 | 42. 接雨水 84.柱状图中最大的矩形

单调栈今天就结束了,这两道题还是非常有难度的,不愧为经典的hard题。明天图论继续加油!

2024-08-20 13:43:58 468

原创 Day42 | 739. 每日温度 496.下一个更大元素 I 503.下一个更大元素II

今天开启了单调栈,做起来有点懵懵的。等过几天回来再好好刷几遍。继续加油!

2024-08-19 18:24:14 904

原创 Day41 | 647. 回文子串 516.最长回文子序列

动态规划完结撒花!!这个模块还需要多练,多看。继续加油明天开始单调栈。

2024-08-17 11:56:58 377

原创 代码随想录 八股文训练营40天总结

从一开始回答问题支支吾吾到现在可以流利有思路的回答问题,还可以反复改正自己的坏的表达习惯。从计算机网络-操作系统-MySQL-Redis-Java基础-JUC-JVM-SSM。通过对着电脑录音这种模式,我可以听出来自己的回答有哪些不足,逐步完善自己的回答。有的题目看起来是会了,但实际上说的时候讲的很乱。希望卡哥训练营的题越来越多,训练营越办越好!还有很多关于英文的读音被发现出来不太娴熟。训练营中的题目都是非常经典的。

2024-08-17 09:26:48 713

原创 Day40 | 115.不同的子序列 583. 两个字符串的删除操作 72. 编辑距离

明天继续动态规划。今天的题依然是有难度的,等二刷的时候回来好好复习。加油!一定能成功!

2024-08-16 18:33:12 1178

原创 Day39 | 1143.最长公共子序列 1035.不相交的线 53. 最大子序和 392.判断子序列

开启了子序列问题明天继续动态规划!坚持就是胜利。

2024-08-15 17:44:58 935

原创 Day38 | 300.最长递增子序列 674. 最长连续递增序列 718. 最长重复子数组

这几道题挺难想明天继续动态规划加油!

2024-08-14 19:46:24 933

原创 Day37 | 188.买卖股票的最佳时机IV 309.最佳买卖股票时机含冷冻期 714.买卖股票的最佳时机含手续费

买卖股票系列终于完结了。明天继续动态规划加油加油!

2024-08-13 20:47:46 907

原创 Day36 | 121. 买卖股票的最佳时机 122.买卖股票的最佳时机II 123.买卖股票的最佳时机III

前两道题稍微简单一点,最后一道题有点难度。总体来说股票问题还是比较难想的。继续加油明天!

2024-08-12 20:48:44 1507

原创 Day35 | 198.打家劫舍 213.打家劫舍II 337.打家劫舍III

背包问题终于结束了,今天是打家劫舍专题。继续加油!

2024-08-10 23:30:21 686

原创 Day34 | 322. 零钱兑换 279.完全平方数 139.单词拆分

二刷的时候好好理解以下这几道题的递推公式。继续努力!

2024-08-09 19:29:48 711

原创 Day33 | 完全背包 518. 零钱兑换 II 377. 组合总和 Ⅳ 70. 爬楼梯 (进阶)

今天练了完全背包问题,明天继续动规问题。加油!

2024-08-08 13:59:57 599

原创 Day32 | 1049. 最后一块石头的重量 II 494. 目标和 474.一和零

最后一块石头的重量 II还是01背包问题的应用。继续努力!

2024-08-07 23:20:28 1082

原创 Day31 | 01背包问题 二维 01背包问题 一维 416. 分割等和子集

接触到了01背包问题,感觉很有意思,会再来关顾这几道题的。

2024-08-06 14:27:36 616

原创 Day30 | 62.不同路径 63. 不同路径 II 343.整数拆分 96不同的二叉搜索树

动态规划第二天。

2024-08-05 15:15:53 1173

原创 Day29 | 动态规划 509. 斐波那契数 70. 爬楼梯 746. 使用最小花费爬楼梯

今天是动态规划的第一天,继续加油,不断完善自己。

2024-08-04 12:45:30 1041

原创 Day28 | 56. 合并区间 738.单调递增的数字 968.监控二叉树

贪心算法这里就结束啦,明天开始动态规划。

2024-08-02 17:44:59 964

原创 Day27 | 贪心算法 452. 用最少数量的箭引爆气球 435. 无重叠区间 763.划分字母区间

感觉第三道题还是挺不好想的,继续加油吧!

2024-08-01 12:10:38 706

原创 Day26 | 贪心算法 134. 加油站 135. 分发糖果 860.柠檬水找零 406.根据身高重建队列

贪心第三天,继续加油!勤于思考,敢想敢做。

2024-07-31 18:48:09 702

原创 Day25 | 贪心算法 122.买卖股票的最佳时机II 55. 跳跃游戏 45.跳跃游戏II 1005.K次取反后最大化的数组和

它山之石,可以攻玉。

2024-07-30 14:18:52 988

原创 Day24 | 贪心算法455.分发饼干 376. 摆动序列 53. 最大子序和

今天开始了贪心算法的学习。继续加油!操千曲而后晓声、观千剑而后识器。

2024-07-29 15:06:22 626

原创 Day23 | 332.重新安排行程 51.N皇后 37.解数独

这三道困难题,我还会来刷的,加油!山高月小,水落石出。

2024-07-28 12:33:46 1318

原创 Day22 | 491.递增子序列 46.全排列 47.全排列 II

回溯的组合和排列问题就告一段落了,明天开始棋盘问题。

2024-07-27 12:22:29 859

原创 Day21 | 93.复原IP地址 78.子集 90.子集II

算法要天天练,坚持最可贵!加油工欲善其事,必先利其器。

2024-07-26 18:11:06 821

原创 Day20 | 39. 组合总和 40.组合总和II 131.分割回文串

回溯算法的第二天 接触到了切割。明天继续努力!博观而约取、厚积而薄发。

2024-07-25 13:18:52 849

原创 Day19 | 77. 组合 216.组合总和III 17.电话号码的字母组合

给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。递归参数:题目给的字符串,创建的数字对应的字母,遍历字符串时用的索引。用for循环减少满足的位置,用递归进行添加到数组中,再进行回溯。回溯题目,本文依然采取递归加回溯的方法,并且进行剪枝。本题依然采取递归的方法完成,创建一个数组接收结果。递归终止条件:将字符串遍历完,将结果添加到数组中。定义的是可变数组,剪枝操作那里要记住索引+1。回溯算法,其实也是递归的思想加上回溯。递归终止条件是索引等于字符串的长度。单层递归:for循环加上内层递归。

2024-07-24 20:35:27 1042

原创 Day18 | 669. 修剪二叉搜索树 108.将有序数组转换为二叉搜索树 538.把二叉搜索树转换为累加树

二叉树章节结束啦!!完结撒花没有量化,就没有改进。

2024-07-23 15:11:55 790

原创 Day17 | 235. 二叉搜索树的最近公共祖先 701.二叉搜索树中的插入操作 450.删除二叉搜索树中的节点

越刷思路越清晰,继续加油!不积细流,无以成江河。

2024-07-22 11:53:47 884

原创 Day16 | 530.二叉搜索树的最小绝对差 501.二叉搜索树中的众数 236. 二叉树的最近公共祖先

不积跬步无以至千里。

2024-07-20 12:46:54 883

原创 Day15 | 654.最大二叉树 617.合并二叉树 700.二叉搜索树中的搜索 98.验证二叉搜索树

合并的规则是:如果两个节点重叠,那么将这两个节点的值相加作为合并后节点的新值;本题还是采用递归法,创建一个空节点,先判断是否为空为空是二叉搜索树,与后一个节点的值作比较。先判断数组中是否含有元素,没有直接返回空,再判断是否只有一个元素,是的话直接构建节点。定义一个最大索引和最大值,通过循环判断,最大值在数组的哪个位置,找到最大值的索引。给你一个二叉树的根节点 root ,判断其是否是一个有效的二叉搜索树。递归参数:数组,左索引,右索引。构建以最大值为根节点的二叉树,然后开始向左递归,再向右递归。

2024-07-19 13:17:16 587

原创 Day14 | 找树左下角的值 路径总和 从中序与后序遍历序列构造二叉树

给定一个二叉树的root,请找出该二叉树的节点的值。假设二叉树中至少有一个节点。本题有两种做法我主要讲一下递归的思路,创建两个全局变量,一个用于存树的深度,一个用于记录最下层最左树的值depth。递归终止条件:树的左右子树都为空。递归参数:节点,深度。单层递归:先判断左右子树是否为空,为空了代表下面没有子树了,这时比较当前深度和全局变量的深度哪个大,当前深度大的话赋值给全局变量,也把值赋值给depth.然后判断左子树是否为空不为空的话进行递归,需要进行回溯操作。右子树同理。具体细节看代码。

2024-07-18 18:43:45 899

原创 Day13 | 110.平衡二叉树 257. 二叉树的所有路径 404.左叶子之和 222.完全二叉树的节点个数

判断根节点是否为空,为空的话直接返回空数组。先判断节点是否为空为空返回0,采用后序遍历,左右中的方式,递归左右子树,判断如果左右子树是否不平衡。的定义如下:在完全二叉树中,除了最底层节点可能没填满外,其余每层节点数都达到最大值,并且最下面一层的节点都集中在该层最左边的若干位置。给你一个二叉树的根节点 root ,按 任意顺序 ,返回所有从根节点到叶子节点的路径。单层递归:先把节点数组加到路径数组中,判断左右子节树是否都为空,为空输出路径。注意判断条件,左节点不为空,左节点的的子树为空。

2024-07-17 12:39:36 790

原创 Day12 | 226.翻转二叉树 101. 对称二叉树 104.二叉树的最大深度 111.二叉树的最小深度

这次用递归法解决了这四道题,下次我会用迭代法解决,敬请期待。

2024-07-16 21:10:21 367

原创 Day11 | 二叉树 递归遍历 迭代遍历 统一迭代 层序遍历

在方法中先判断终止条件即节点不为空,因为是中序就左中右,先调用递归函数参数是左节点、ArrayList,再添加节点的值到ArrayList中,最后再调用递归函数参数是右节点、ArrayList。在循环里:先将根节点弹出,值放入数组中,判断如果右节点不为空放入右节点,再判断左节点,不为空把左节点放到栈中。依然采取栈的数据结构,我们将访问的节点放入栈中,把要处理的节点也放入栈中但是要做标记。判断节点是否为空,若不为空,将节点加入到栈中,节点向左子树遍历。首先创建一个数组,判断根节点是否为空,为空返回空数组。

2024-07-15 17:38:47 636

原创 Day10 | 150. 逆波兰表达式求值 239. 滑动窗口最大值 347.前 K 个高频元素

栈和队列今天就算完结了,今天我体会到了写注释的重要性,以后的代码我会多多写注释,来保证思路的完整性。继续加油!我亦无他唯手熟而。

2024-07-13 12:45:11 1045

原创 Day09 | 232.用栈实现队列 225. 用队列实现栈 20. 有效的括号 1047. 删除字符串中的所有相邻重复项

今天开篇了栈和队列,这几道题主要是思路的模拟。先想好思路还是比较容易地。明天继续加油,万丈高楼平地起。

2024-07-12 23:28:46 566

原创 Day08 | 151.翻转字符串里的单词 卡码网:55.右旋转字符串

中可能会存在前导空格、尾随空格或者单词间的多个空格。返回的结果字符串中,单词间应当仅用单个空格分隔,且不包含任何额外的空格。1.removeSpace()中先去前后的空格,注意循环判断条件是小于等于。先将多余的空格删除,翻转整个字符串,逐个翻转内部的字符串。先整体翻转,在翻转前k个,最后翻转剩下的。中使用至少一个空格将字符串中的。之间用单个空格连接的结果字符串。是由非空格字符组成的字符串。时间复杂度: O(n)空间复杂度: O(n)翻转 的时候看好区间。时间复杂度: O(n)空间复杂度: O(n)

2024-07-11 17:35:39 402

原创 Day07 | 344.反转字符串 541. 反转字符串II 卡码网:54.替换数字

遍历的条件是每次加2k个,先判断s是大于k 如果大于将前K个数通过reverse方法进行反转。先获得输入的s长度,用 变量len存长度,进行扩容,创建一个字符数组,把字符串的字符放进去,再通过循环判断来替换数字最后输出这个字符数组。其实很多数组填充类的问题,其做法都是先预先给数组扩容带填充后的大小,然后在从后向前进行操作。一开始我打算再创个数组,反向遍历一下再放入,后发现不能格外分配空间。用双指针法,循环将数组的第一个数和最后一个数进行交换就好了。、使用 O(1) 的额外空间解决这一问题。

2024-07-10 16:06:07 566

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除