自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 代码随想录训练营第三十天 | 452. 用最少数量的箭引爆气球 435. 无重叠区间 763.划分字母区间

也正因此,按照右区间排序,取第一个作为本组会被留下来的区间——本组的其他区间都会被删除。最后用区间总数减去非交叉区间的个数就是需要移除的区间个数了。我理解的贪心:需要去掉和其他区间重叠多的,但其实不是。看起来与上一题有点像,但是这一题需要去掉特定区间。代码随想录版本:只用了一层循环,逻辑更清晰一点。总而言之,本题其实是要求出,重叠的组数。类似于上两道题:随着遍历,逐步更新边界。此时问题就是要求非交叉区间的最大个数。最终,1、4、6不会重叠。

2025-06-13 00:12:07 51

原创 代码随想录训练营第二十九天 | 134. 加油站 135. 分发糖果 860.柠檬水找零 406.根据身高重建队列

排序完的people: [[7,0], [7,1], [6,1], [5,0], [5,2], [4,4]]插入[4,4]:[[5,0],[7,0],[5,2],[6,1],[4,4],[7,1]]此时,一定要确定一边之后,再确定另一边。插入[5,2]:[[5,0],[7,0],[5,2],[6,1],[7,1]]插入[5,0]:[[5,0],[7,0],[6,1],[7,1]]插入[6,1]:[[7,0],[6,1],[7,1]]插入[7,1]:[[7,0],[7,1]]插入[7,0]:[[7,0]]

2025-06-12 00:58:03 197

原创 代码随想录训练营第二十八天 | 122.买卖股票的最佳时机II 55. 跳跃游戏 45.跳跃游戏II 1005.K次取反后最大化的数组和

想来,动规要比贪心简单。贪心有点抽象了。贪心:如果能赚钱,就要买卖股票。

2025-06-11 01:47:27 106

原创 代码随想录训练营第二十七天 | 455.分发饼干 376. 摆动序列 53. 最大子序和

贪心的本质是选择每一阶段的局部最优,从而达到全局最优。最好用的策略就是举反例。做题的时候,只要想清楚 局部最优 是什么,如果推导出全局最优,其实就够了。

2025-06-11 00:42:41 199

原创 代码随想录训练营第二十五天 | 491.递增子序列 46.全排列 47.全排列 II 332.重新安排行程(可跳过)51.N皇后(适当跳过)37.解数独(适当跳过) 总结

组合问题和排列问题是在树形结构的叶子节点上收集结果,而子集问题就是取树上所有节点的结果。

2025-06-07 19:10:49 166

原创 代码随想录训练营第二十四天 | 93.复原IP地址 78.子集 90.子集II

插入,也实际上是分割问题。最终还是在回溯阶段作判断了……appendinsert。

2025-06-07 15:05:05 90

原创 代码随想录训练营第二十三天 | 39. 组合总和 40.组合总和II 131.分割回文串

解集不能包含重复的组合—— 为了解决该问题,有的用了startIndex,有的用了排序,有的用了used数组。区别:216.组合总和IIIcandidates不能重复,也不能重复取。使用startIndex。39.组合总和candidates不能重复,但可以重复取。使用startIndex,并且排序。40.组合总和IIcandidates可以重复,但不能重复取。使用startIndex,并且排序,并且使用used数组。

2025-06-06 00:58:45 253

原创 代码随想录训练营第二十二天 | 回溯 77. 组合 216.组合总和III17.电话号码的字母组合

不能重复的组合就是集合:使用startIndex即可横向遍历。

2025-06-05 00:49:35 124

原创 代码随想录训练营第二十一天 | 669. 修剪二叉搜索树 108.将有序数组转换为二叉搜索树 538.把二叉搜索树转换为累加树

2025-06-04 00:06:59 183

原创 代码随想录训练营第十九天 | 235. 二叉搜索树的最近公共祖先 701.二叉搜索树中的插入操作 450.删除二叉搜索树中的节点

本题无关前中后序:对于BST,如果 中间节点是 q 和 p 的公共祖先,那么 中节点的数组 一定是在 [p, q]区间的。

2025-06-02 22:21:33 205

原创 代码随想录训练营第十八天 | 530.二叉搜索树的最小绝对差 501.二叉搜索树中的众数 236. 二叉树的最近公共祖先

还是疏忽了……。在BST中,最小绝对差不一定出现在父子节点之间,而是可能出现在相邻的中序遍历节点之间。因此,直接比较当前节点与其左右子节点的值是不够的。BST是有序的,可以视为在一个有序数组上求最值,求差值,这样就简单多了。

2025-06-02 02:34:01 170

原创 代码随想录训练营第十七天 | 654.最大二叉树 617.合并二叉树 700.二叉搜索树中的搜索 98.验证二叉搜索树(中序有序)

只是觉得不能记录好大小顺序,需要一次次遍历,有些浪费时间。

2025-05-31 14:44:44 299

原创 代码随想录训练营第十六天 | 513. 找树左下角的值 112.113.路径总和 106. 从中序与后序遍历序列构造二叉树

例如,swaproot因此,无论是swap还是inverTree,都是在处理。因此,他们的顺序,就是遍历的顺序。对于404左叶子之和,不是很直观:实际上是后序遍历。可以体会一下。只有先计算出左孩子、右孩子的对应值,才会计算该节点的对应值。计算之后,再返回。

2025-05-29 22:51:31 329

原创 代码随想录训练营第十五天 | 110.平衡二叉树 257. 二叉树的所有路径 404.左叶子之和 222.完全二叉树的节点个数

104.二叉树的最大深度该题使用后序遍历,因为此时代码就是在求根节点的高度。只不过,根节点的高度就等于最大深度。

2025-05-29 00:44:41 350

原创 代码随想录训练营第十四天 | 226.翻转二叉树 (优先掌握递归)101. 对称二叉树 (优先掌握递归) 104.二叉树的最大深度 (优先掌握递归)111.二叉树的最小深度 (优先掌握递归)

所谓的遍历的前中后序:指的是“交换”这个行为。是先交换根节点的左右孩子?还是先交换左孩子的左右孩子?还是先交换右孩子的左右孩子?

2025-05-28 00:53:51 304

原创 代码随想录训练营第十三天 | 二叉树 递归遍历 迭代遍历 统一迭代 层序遍历

的位置不同防止空树:在边缘判断是否为空,而非递归逻辑处判断是否为空。

2025-05-27 01:15:19 160

原创 代码随想录训练营第十一天 | 150. 逆波兰表达式求值 239. 滑动窗口最大值 347.前 K 个高频元素

239. 滑动窗口最大值 (难:单调队列,不同于优先级队列)此处的单调队列:队列没有必要维护窗口里的所有元素,只需要维护有可能成为窗口里最大值的元素就可以了,同时保证队列里的元素数值是由大到小的。设计单调队列的时候,pop,和push操作要保持如下规则:一开始的思路,维护一个最大值,但是一旦最大值之后,就不知道此时窗口内的最大值是多少了。难道要重新遍历一遍?用两个队列?写不下去……使用单调队列代码随想录解法:347.前 K 个高频元素 (难:优先级队列)大顶堆(Max Heap)和小顶堆(

2025-05-25 23:43:41 301

原创 代码随想录训练营第十天 | 232.用栈实现队列 225. 用队列实现栈 20. 有效的括号 1047. 删除字符串中的所有相邻重复项

使用Stack。

2025-05-24 01:29:42 201

原创 代码随想录训练营第九天 | 151. 翻转字符串里的单词 卡码网55.右旋转字符串 28. 实现strStr() 459. 重复的子字符串 字符串总结

笨办法:笨办法的第一次逻辑优化与缺陷:笨办法的第二次优化:实际考验的算法:真想取巧的话,直接substring拼接就行hhhh数学推导:28. 实现strStr()(难:kmp、求前缀表、理解最长相同前后缀)next数组:表示,子串,它的最长相同前后缀的长度。也正因此,可以回退——此时后缀已经匹配上,证明前缀也可以匹配。求next数组(前缀表减一):本来,现在是。注意:始终是与两个位置进行比较。第一次实现的:随想录中的:最终:459. 重复的子字符串(难:数学推导)看了一遍随想录,直接

2025-05-23 23:51:25 252

原创 代码随想录算法训练营第八天 | 344.反转字符串 541. 反转字符串II 卡码网:54.替换数字

双指针。

2025-05-22 01:02:19 163

原创 代码随想录算法训练营第七天 | 454.四数相加II 383. 赎金信 15. 三数之和 18. 四数之和

两数相加的变种。

2025-05-21 00:06:00 289

原创 代码随想录 | 二叉树(与递归)、回溯、贪心

​主要是因为程序运行的时候对unordered_set 频繁的insert,unordered_set需要做哈希映射(也就是把key通过hash function映射为唯一的哈希值)相对费时间,而且insert的时候其底层的符号表也要做相应的扩充,也是费时的。前序:因为前序遍历的顺序是中左右,先访问的元素是中间节点,要处理的元素也是中间节点,所以刚刚才能写出相对简洁的代码,因为要访问的元素和要处理的元素顺序是一致的,都是中间节点。效率很低,因为没有很好的模拟回溯的过程,所以迭代法有很多重复的计算。

2025-05-20 12:13:34 649

原创 代码随想录算法训练营第六天 | 242.有效的字母异位词 349. 两个数组的交集 202. 快乐数 1. 两数之和

返回的是对象,所以要先转换为。,能够简单地转换为数组。

2025-05-19 22:48:18 169

原创 代码随想录算法训练营第四天 | 24. 两两交换链表中的节点 19.删除链表的倒数第N个节点 面试题 02.07. 链表相交 142.环形链表II

查看代码随想录版本,并总结。命名:面对众多指针的情况,尽量使用cur, node1, node2。明确cur的位置,有助于进行循环。交换顺序:如果更改交换顺序,则可以不用temp节点。递归解法:可以先交换……虽然还是要临时节点来存储。// 将步骤 2,3 交换顺序,这样不用定义 temp 节点= null) {// 第 1 个节点// 第 2 个节点// 步骤 1// 步骤 3// 步骤 2// 递归版本// base case 退出提交。

2025-05-18 00:56:44 325

原创 代码随想录算法训练营第三天 | 203.移除链表元素 707.设计链表 206.反转链表

删除节点时,一定会有个temp临时存储。:类似于虚拟头节点的作用。

2025-05-17 12:16:46 200

原创 代码随想录算法训练营第二天 | 209. 长度最小的子数组 59. 螺旋矩阵Ⅱ 区间和 开发商购买土地

滑动窗口的区间:左闭右闭保证数组不会越界可以赋初始值for循环:右指针遍历while循环:找到合适的左指针固定终止位置,寻找此时的起始位置。什么时候用for循环,什么时候用while循环?目前还是有点不懂。Math在lang包下,可以使用。在循环时,每次i的范围都要在offset到n-offset-1之间。可以将其固定。offset与loop虽然值一样,但分成两个变量,有不同的含义。offset与loop,是否初始值设为-1更好一点?scanner用完记得关闭……

2025-05-15 21:54:00 321

原创 代码随想录算法训练营第一天 | 704. 二分查找 27. 移除元素 977. 有序数组的平方

关键:区间规则很久之前做过这道题,相当于复习一下了。重点在于注意左闭右开的几处地方,我都标注出来了。

2025-05-14 11:31:14 204

原创 MySQL数据库大作业——学生管理系统GUI

西电MySQL数据库大作业——学生管理系统GUI原程序链接: https://www.bbsmax.com/A/kmzL3WQBdG/为了完成数据库大作业, 我在其基础上进行了一定的修改和扩充.如果要使用的话, 请修改__init__中的数据库登录信息,把其中的*****修改成自己的信息即可。主界面会自动分辨学生与教工账号,直接登录即可。使用程序之前数据库中表的建立:# studentcreate table student(sno char(8) primary key,sname c

2021-05-29 16:53:20 6527 18

原创 java面向对象(OOP)

java面向对象(OOP)面向过程&面向对象面向过程第一步做什么, 第二步做什么微观操作面向对象分类的思维适合处理复杂的, 多人协作的问题对于描述复杂的事物, 为了从宏观上把握, 从整体上合理分析, 需要面向对象分析整个系统但是, 具体到微观操作, 仍然需要面向过程面向对象Object-Oriented Programming, OOP本质: 以类的方式组织代码, 以对象的方式封装数据特性封装继承多态封装高内聚:

2021-02-19 10:56:53 179

原创 java基础Ⅱ

java基础Ⅱ包机制为了更好地组织类语法格式: package …利用公司域名倒置作为包名导入包: import …通配符*: import java.lang.*;生成javadoc: tools/generate javadocScanner创建扫描器对象, 接受键盘数据Scanner s = new Scanner(System.in);s.close(); 及时关闭, 减少资源浪费s.next() 和 s.nextline() 获取输入的字符串s.hasNext()

2021-02-15 10:10:53 172

原创 java基础

java基础注释//单行注释/* 多行注释*//**文档注释javadoc*@Author zyzhang_3*@Description helloworld**/快捷写法使用IDEA//首字母psvm 或main public static void main(String[] args){ }//sout System.out.println("");标识符和关键字//标识符__名字//关键字__程序自己要用到的一些词,这些词有着特殊

2021-02-03 19:02:57 176

空空如也

空空如也

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

TA关注的人

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