- 博客(34)
- 收藏
- 关注
原创 Day35(贪心)|860. 柠檬水找零 406. 根据身高重建队列 452. 用最少数量的箭引爆气球
【代码】Day35(贪心)|860. 柠檬水找零 406. 根据身高重建队列 452. 用最少数量的箭引爆气球。
2023-01-29 10:09:20
214
原创 Day34(贪心)|1005. K 次取反后最大化的数组和 134. 加油站 135. 分发糖果
【代码】Day34(贪心)|1005. K 次取反后最大化的数组和 134. 加油站 135. 分发糖果。
2023-01-28 09:26:37
206
原创 Day32(贪心)|122. 买卖股票的最佳时机 II 55. 跳跃游戏 45. 跳跃游戏 II
【代码】Day32(贪心)|122. 买卖股票的最佳时机 II 55. 跳跃游戏 45. 跳跃游戏 II。
2023-01-16 10:32:58
226
原创 Day31(贪心)|初步了解 455. 分发饼干 376. 摆动序列 53. 最大子数组和
贪心算法是规划类问题的一种思路,当问题可以拆成子问题,通过每个子问题最优获得全局最优且没有反例的时候可以尝试贪心算法。
2023-01-12 10:18:03
95
原创 Day29(回溯)|491. 递增子序列 46. 全排列 47. 全排列 II
【代码】Day29(回溯)|491. 递增子序列 46. 全排列 47. 全排列 II。
2023-01-10 11:32:36
86
原创 Day28(回溯)|93. 复原 IP 地址 78. 子集 90. 子集 II
【代码】Day28(回溯)|93. 复原 IP 地址 78. 子集 90. 子集 II。
2023-01-09 10:54:06
125
原创 Day27(回溯)|39. 组合总和 40. 组合总和 II 131. 分割回文串
【代码】Day27(回溯)|39. 组合总和 40. 组合总和 II 131. 分割回文串。
2023-01-08 20:26:01
70
原创 Day25(回溯)|216. 组合总和 III 17. 电话号码的字母组合
【代码】Day25(回溯)|216. 组合总和 III 17. 电话号码的字母组合。
2023-01-05 10:29:16
95
原创 Day24(回溯)|回溯法介绍 77. 组合
回溯是一种搜索方法,是递归的副产物,一般会和递归一起出现回溯的算法效率并不算很高,本质上是加入剪枝的穷举算法回溯法适合什么场景:(只能靠暴力搜索才能解决的问题,用回溯引入剪枝能稍微快一点)组合问题:N个数里面按一定规则找出k个数的集合切割问题:一个字符串按一定规则有几种切割方式子集问题:一个N个数的集合里有多少符合条件的子集排列问题:N个数按一定规则全排列,有几种排列方式棋盘问题:N皇后,解数独等等回溯算法都可以抽象成树结构回溯法模板:三部曲。
2023-01-04 11:07:43
85
原创 Day23(二叉树)|669. 修剪二叉搜索树 108. 将有序数组转换为二叉搜索树 538. 把二叉搜索树转换为累加树
二叉树部分总结(待补充)
2023-01-03 10:27:55
109
原创 Day22(二叉树)|235. 二叉搜索树的最近公共祖先 701. 二叉搜索树中的插入操作 450. 删除二叉搜索树中的节点
【代码】Day22(二叉树)|235. 二叉搜索树的最近公共祖先 701. 二叉搜索树中的插入操作 450. 删除二叉搜索树中的节点
2023-01-02 11:06:08
80
原创 Day21(二叉树)|530. 二叉搜索树的最小绝对差 501. 二叉搜索树中的众数 236. 二叉树的最近公共祖先
二叉搜索树的性质应用,可以通过遍历变成有序数组,就可以完成找最值,差值等操作通过定义pre,cur指针并更新的方法可以不适用额外空间存放遍历的有序数组。
2022-12-30 10:10:22
88
原创 Day20(二叉树)|654. 最大二叉树 617. 合并二叉树 700. 二叉搜索树中的搜索 98. 验证二叉搜索树
二叉树和二叉搜索树的一些问题,主要思路都是递归。
2022-12-29 11:48:41
107
原创 Day18(二叉树)|513. 找树左下角的值 112. 路径总和 106. 从中序与后序遍历序列构造二叉树
二叉树递归加回溯的问题,首先确定递归的三步走,参数返回值,终止条件和单层逻辑,然后确定怎么回溯,一般是在递归单层并不满足终止条件时要做回溯。
2022-12-28 10:42:26
72
原创 Day16(二叉树)|104. 二叉树的最大深度 111. 二叉树的最小深度 222. 完全二叉树的节点个数
今天三道题主要都是递归应用,核心是搞清楚每一步递归要做什么和终止条件。
2022-12-22 10:29:04
89
原创 Day13(栈与队列)|239. 滑动窗口最大值 347.前 K 个高频元素
今天的两道题比较难,涉及到的思路之前没见过,分别是自定义单调队列和大小顶堆的应用,一刷的时候主要理解了题解思路,后面再刷的时候尽量能自己写出来代码。
2022-12-19 11:39:25
89
原创 Day11(栈与队列)|20. 有效的括号 1047. 删除字符串中的所有相邻重复项 150. 逆波兰表达式求值
今天的三个题目都是栈的应用问题,栈能够解决的一类问题是匹配问题,第一题可以看成相同种类括号的匹配,第二题是相同元素的匹配,第三题是后序表达式中对应运算符号和元素的匹配。
2022-12-17 16:23:36
201
原创 Day10(栈与队列)|232. 用栈实现队列 225. 用队列实现栈
栈和队列结构的概念,栈先入后出,队列先入先出用栈实现队列和用队列实现栈的方法,都需要两个来实现java中队列的实现使用LinkedList。
2022-12-16 10:48:06
79
原创 Day9(KMP难点)|28. 找出字符串中第一个匹配项的下标 459. 重复的子字符串 总结(字符串部分+双指针)
字符串总结库函数的使用:需要熟悉自己语言里一些库函数的实现和应用方法,但是也不应该过于依靠库函数,有的时候也需要自己实现库函数的功能,例如:split分割,reverse反转,substr子字符串等等双指针法的应用:有的时候一眼看上去的暴力揭发是两层循环嵌套的时候,或者需要新建额外空间实现的时候,可以想一下能不能用双指针方法减少一层循环,或是减少额外空间消耗做到原地实现。KMP。
2022-12-15 12:07:52
70
原创 Day8(字符串)|344. 反转字符串 541. 反转字符串 II 剑指 Offer 05. 替换空格 151. 反转字符串中的单词 剑指 Offer 58 - II. 左旋转字符串
今天的几道题考察字符串的操作,一方面需要熟悉一些标准库函数的应用,以及java中char[],string等的转换,另一方面能不用标准库最好还是不用,因为用标准库一般都需要新建空间造成空间浪费,可以通过一些其他方法进行原地实现,这其中用得比较多的双指针方法。
2022-12-14 19:56:24
62
原创 Day7:(哈希表)|454.四数相加II 383. 赎金信 15. 三数之和 18. 四数之和
今天四道题主要都是用哈希表匹配的,和昨天的字母异位词那道题差不多。
2022-12-13 16:57:57
83
原创 Day6:(哈希表)|242.有效的字母异位词 349. 两个数组的交集 202. 快乐数 1. 两数之和
今天开始的题目是哈希表部分,对这部分的基础知识不是很牢固四道题用到了数组的哈希表,set结构和map结构,需要明白每种结构的模式以及优缺点、什么时候用数组哈希表:用数组模拟哈希表,好处是速度比较快,但是对数字大小有约束,一般1000以内可用set结构:相比数组能够容纳更大的数,但是操作起来用时更长map结构:是一种key-value模式的哈希表结构。
2022-12-12 12:38:24
164
原创 Day4:(链表)|24. 两两交换链表中的节点 19.删除链表的倒数第N个节点 07. 链表相交 142.环形链表II
今天的四道链表题主要是对链表的结构进行考察,涉及到了交换、删除、环结构等,链表的题最好画图手推一下,更容易理解,不然容易搞错顺序常用的方法有虚拟头节点和双指针法循环的终止条件要搞清楚。
2022-12-10 20:42:21
70
原创 Day3:(链表)|203.移除链表元素 707.设计链表 206.反转链表
707.设计链表题目链接:707.设计链表解题思路:不涉及太多算法,就是自己实现一个链表的增删获取操作,需要自己定义链表结构主要难点:也设置一个虚拟头节点,理由同上,用起来方便解题步骤:获取:判断合法性后,从虚拟头节点开始后移index位,取得当前对应值返回任意位置插入:几种情况要都考虑到,大于index不插直接return,小于index插头部,等价于index=0,其他情况正常插,从虚拟头节点移动到要插入位置的前一个位置上,新建节点进行插入,记得size++头插入、尾插入:是任意位置插
2022-12-09 11:14:52
295
原创 Day2:(数组)977.有序数组的平方 209.长度最小的子数组 59.螺旋矩阵Ⅱ
今天的三道题之前都有做过一遍,再拿来做的时候有思路但是写的过程还是容易出各种错误,这三道题的主要思想是双指针法和循环不变量原则,双指针法使用两个指针进行移动能够将两个for循环减少到一个for循环,提高程序的时间复杂度;循环不变量原则是写代码时的一种原则,通过固定的规则去编码能够减少循环判断条件的复杂度,让逻辑更加清晰。
2022-12-08 17:27:46
126
原创 Day1-数据结构与算法-队列
一.队列的概念先进先出有序链表,可用数组或链表实现数组模拟队列:本身是有序列表,需要两个变量front首指针和rear尾指针,maxsize代表队列最大容量front=rear时队列为空rear=maxsize-1时队列为满这样实现是否有问题?二.数组模拟队列编写代码来实现一下数组模拟队列,首先编写一个ArrayQueue类,定义队列的一些基本操作方法:package com.Queue;public class ArrayQueue { privat
2022-01-07 21:07:21
648
原创 大大星的第一条博客!
大大星的第一条博客——markdown的使用一.关于markdown格式文档Markdown 是一种轻量级标记语言,它允许人们使用易读易写的纯文本格式编写文档。Markdown 语言在 2004 由约翰·格鲁伯(John Gruber)创建。Markdown 编写的文档可以导出 HTML 、Word、图像、PDF、Epub 等多种格式的文档,编写的文档后缀为 .md, .markdown。markdown格式文档功能强大,支持多种文本格式,包括分级目录,制表画图,插入代码块等,是程序员记录学习心得的不二
2021-01-24 16:38:30
325
3
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人