自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 DAY23|二叉树part07

markdown出问题了打不出字来,,这版没写完

2024-05-20 16:58:29 340 2

原创 DAY22|二叉树part6

递归思路:参数应该是输入数组,返回值是一个节点遍历找到数组最大值的下标,然后new一个根节点出来,左右子是递归送进去的该数组的左右下标。终止条件就是传入数组为0AC感觉可以两个都层序遍历,然后null也算节点.但这样无法根据队列是否为空来判断遍历是否结束。需要设置一个其他的标志位。这样试了一下发现不行,层序遍历无法按层来新构建一个二叉树或者在原始二叉树上直接覆盖。因为创建节点(除非是根节点)需要跟他的父节点相连,但层序遍历只在本层循环,无法得到上一层的信息。换递归。递归的话感觉需要前序遍历才能

2024-05-20 14:40:25 477

原创 随便刷刷1

动态规划从二叉树后面开始的题就掌握得像勾实一样了,当然之前的题也没好到哪去。于是决定开始从动态规划刷起,虽然代码随想录的训练营的二叉树部分我还没刷完。。换个part换换心情简单看了一下动态规划五部曲:1.确定DP数组以及下标的含义2.递推公式3.DP数组如何初始化4.遍历顺序5.打印数组其实不是太明白,因为我之前动态规划写的也不好,直接上第一题开练!

2024-05-17 23:14:51 725 1

原创 DAY21|二叉树PART5

感觉也不是不能做,可以存一下每层弹出的第一个元素(也就是最左边的元素),然后最后退出循环的时候这个空间里存的就是最底层最左边的元素,返回这个节点的值就可以了。因为(最差的情况的话)要遍历所有头节点到叶节点的路径找是否有相似的和,相当于每找到一条路径之和就比对一下。如果按左中右顺序递归,需要返回当前节点的深度,最后取一个深度最大最左面的节点作为结果。根据中序遍历的左子树的长度可以在后序遍历中从头开始得到左子树(后序遍历版)的长度。要不然就是先遍历求总的层数(深度),然后再次遍历到最后一层取最左边的元素。

2024-05-11 17:27:28 295 1

原创 DAY20|二叉树part4

思路:可以两棵树同时遍历,比较节点。可以递归可以迭代。* };if(p!return;if(p->val!迭代,对层序遍历比较熟练,写一下:/*** int val;* };pst.pop();qst.pop();* };*/

2024-05-10 16:52:09 784

原创 DAY19|二叉树part3

完全二叉树 的定义如下:在完全二叉树中,除了最底层节点可能没填满外,其余每层节点数都达到最大值,并且最下面一层的节点都集中在该层最左边的若干位置。借用了测试用例2的图来说明,直接求min可能会有类似图上这种,某个节点的左子或者右子为空,但该节点还不是叶节点,那么此时程序会把这种节点的左右最小深度直接算作0.既然是完全二叉树,那么前n-1层的节点数一定是2^i个,只需要遍历最后一层的节点就可以了。(该节点是叶节点的情况可以包括在第二种条件中,因为这时候左右都为0,返回的max也是0,符合预期。

2024-05-09 22:13:21 929

原创 DAY17|二叉树part2

一个打十个!

2024-05-05 15:09:42 791 2

原创 DAY14|二叉树

终于开了二叉树!!从这开始我就学的不好了!!看我猛猛学!!先不刷题先从理论看起来首先二叉树的如果一棵二叉树只有度为0的结点和度为2的结点,并且度为0的结点在同一层上,则这棵二叉树为满二叉树。二叉树的二叉树深度优先搜索:前中后都是这种遍历。一般用递归来实现,也可以用栈来模拟递归过程。其中,前序遍历:中左右中序遍历:左中右后序遍历:左右中广度优先搜索:一层一层遍历。层序遍历就是广度优先搜索。迭代法实现。使用队列。

2024-05-04 18:16:41 956

原创 DAY13|栈与队列PART3

栈与队列的最后一part。

2024-05-03 22:53:30 975 1

原创 DAY11|栈与队列PART2

焦虑了就来写一篇发泄一下。。。不想复习考试。。。

2024-04-30 16:40:32 414 1

原创 DAY10| 栈与队列

DAY9 的KMP过几天发。。等我3号考完试必写完。

2024-04-30 12:55:39 201 3

原创 DAY8|字符串

写得巨慢因为最近考试实在是太多了抽不出时间做题。。。不过我尽量维持一天至少做一道题的速度,而且如果不是自己一下想出来最优解的题我都会先搞清楚思路,先写博客再做题。有时候一道题第一遍没写出最优解可能要到第二天才有时间debug或者重新写。。拖了好几天了。。。今天先把字符串Part1完结,part2还有更难理解的kmp。。。

2024-04-27 16:07:34 1048 2

原创 DAY7|哈希表Part2

left和right去重,则是在循环中找到等于0的情况,下一步需要向内同时收缩left和right(此时如果left<right,第一个指针i还是不变的)。注意第二个指针left是从i+1的位置开始的,如果是这种判断条件,相当于直接排除了所有第一个指针和第二个指针数相同的情况,这样会错过[-1,-1,2]的这种情况。第一个指针为i,放在一个for循环从头开始循环,第二个指针取名left,起始位置在i的下一个,第三个指针取名right,起始位置在最大的位置。隐约记得是没用哈希表的方法,其他的想不起来。

2024-04-25 00:21:01 993 1

原创 Day6|哈希表

想了一下发现确实,第一次把数组里所有数一股脑存到哈希表里,然后再次遍历并且对照着找哈希表里有无满足target减当前数的元素,这种情况有可能直接找到自己,然后就返回两个相同位置的元素了。看题解去了,发现可以在第一次遍历的时候,就把数一边存入哈希表一边查询是否有满足条件的整数对,在存入表之前先查询表中有无满足条件的元素,这样很好地避免了找到自身。(题解给的另一种算法感觉也很好,排序+双指针,指针指向相同就取值,时间复杂度是O(mlogm+nlogn))暴力法太笨了,就不提了。但是也可以提供一些其他的思路?

2024-04-23 00:31:24 307 1

原创 Day4|链表

本来感觉当时写的没啥问题的,今天重新写的时候发现没用到虚拟头节点,也没单独考虑如果删除的节点是头节点怎么返回,也没有delete语句,直接重新连接了next指针就return了。遍历每个节点并入表,如果遍历的时候遇到表中已存在的点,说明存在环,且当前的节点就是入环节点。第二题说思路的时候答出了双指针,然后勉强写出来了,因为是在一个白板上写的,没运行,面试官直接看了眼说可以了就结束了。此外,之前一刷很多链表题的时候,我并没有什么设置虚拟头节点的意识,都是把头节点的情况单独拿出来写,以上,写过一次了还是错。

2024-04-22 19:57:05 272

原创 Day3|链表

很简单就直接上代码了,加一个虚拟头节点会很方便。

2024-04-22 11:59:35 125

原创 Day2|数组双指针、

一开始只能想到暴力解法,就是先算出所有平方再统一sort但是这样的时间复杂度有O(NlogN)(看了一下可以在原数组nums的基础上做修改,这样空间复杂度是O(1))看了点题解————双指针法原理就是绝对值最大的肯定在两端其中之一,所以能先找到最大的平方值。但是看了一下要求输出从小到大,先找到最大的放在哪啊(这里卡了一下,还是菜,没忍住又看了眼题解)可以在初始化的时候就给vector数组前size个空间置0(先开辟出这些空间,后面可以直接在这些空间上修改值)

2024-04-21 22:42:11 873 1

原创 DAY1打卡

最近ddl多的想鼠 markdown也是第一次用 今天太晚了先贴一下代码 明天来写点思路总结。AC了、、两道很简单的题。虽然好像还有别的题但是明天再加上吧、、ddl要紧。这里第一次写了个死循环出来,注意for的条件判断。还有i的原地踏步重新检查。

2024-04-17 23:23:06 225

原创 2020-05-27

int main(void){ Stack rowStack; int qRow, qCol, col, row, attacked, exitLoop; Board myBoard; cout << "Enter the position of the first queen\nRow: " << flush; cin >> qRow; cout << "Column: " << flush; cin >&g

2020-05-27 21:08:35 106

空空如也

空空如也

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

TA关注的人

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