数据结构整理
文章平均质量分 60
按类进行学习记录
IMMUNIZE
immunize yourself!
展开
-
20210408:力扣(二分查找法的两种写法以及变体题目)
二分查找法的两种写法以及变体题目写在前面题目思路与算法代码实现写在最后写在前面关于二分查找,真的是一个非常实用的查找算法,主要有两种写法,今天在总结时再次碰到,再次整理,方便后续查看复习。这两种写法分别是递归式写法和循环式写法。递归式写法// 从已排序数组sorted_arr中寻找target,找到则返回truebool binary_search(vector<int> & sorted_arr,int begin,int end,int target) {原创 2021-04-08 23:55:37 · 260 阅读 · 0 评论 -
20210330:二叉树力扣相关习题复习(上)
20210330:二叉树力扣相关习题复习(上)题目思路与算法代码实现写在最后题目路径总和 II二叉树的最近公共祖先二叉树展开为链表思路与算法路径总和 II:经典三序遍历二叉树题目,需要保存路径,熟悉流程二叉树的最近公共祖先:变相的求路径的题目,巩固遍历的技巧,最后只需要从短的路径头开始同步遍历即可,相同的路径会不断覆盖res直至最近公共祖先节点。二叉树展开为链表:时间原因,投机取巧使用了vector保存前序遍历的路径,再进行相邻节点的连原创 2021-03-31 00:09:04 · 95 阅读 · 0 评论 -
20210325:力扣递归,回溯类型题目合集
力扣递归,回溯类型题目合集题目思路与算法代码实现写在最后题目子集2. 90. 子集 II3. 40. 组合总和 II4. 22. 括号生成思路与算法子集:注释的很详细,递归生成子集。还有一种位运算的方法更加简洁,但是如果不熟练的话会比较吃力。子集 II: 其余思路同上题,总体不同在于通过排序去除乱序相同的子集,再通过set去重即可。组合总和 II:还是在上一题的基础上,继续增加条件,在递归获取所有子集的同时,利用题目要求的target进行剪枝。原创 2021-03-26 00:35:38 · 373 阅读 · 0 评论 -
20210322 :贪心思想力扣典型题目合集
贪心思想力扣典型题目合集写在前面题目列表思路分析代码实现写在前面贪心的思想很多时候在于想到那个贪心的点上,而对徒手书写某些代码结构的能力并不做要求,个人认为需要的是你敏锐的意识到这个贪心的点在哪里。列举出这几道典型题目作为回顾与复习。题目列表分发饼干2. 376. 摆动序列3. 402. 移掉K位数字4. 55. 跳跃游戏5. 45. 跳跃游戏 II6. 452. 用最少数量的箭引爆气球不直观,给个更直观的图:思路分析分发饼干:贪心点在于:尽可能小的原创 2021-03-22 22:59:58 · 93 阅读 · 0 评论 -
20210310 & 20210311 :栈、队列、堆类题目合集
栈、队列、堆类题目合集写在前面题目列表思路分析代码实现写在前面栈、队列、堆基本的题目就是这些,需要特殊技巧的另算,重写一遍保证熟练掌握这些题目并且达到熟练使用的程度。记录以便后续再次学习。题目列表用队列实现栈用栈实现队列最小栈数组中的第K个最大元素数据流的中位数思路分析用队列实现栈用栈实现队列最小栈数组中的第K个最大元素(堆实现)数据流的中位数(大小堆实现)注意1-3题只是增加对原创 2021-03-11 23:42:06 · 104 阅读 · 0 评论 -
20210308 & 20210309 :链表类题目合集
链表类题目回顾写在前面题目思路与算法代码实现写在前面这一类的题目上一次编写是在刚好6个月之前,也就是我20200908和20200909的两篇博客涉及了今天这一篇的所有题目,均为链表相关。这个月的小目标是结束之前将力扣的题目分类进行归并重写。旨在提升整体的架构水平,自我评价是这一年来更加熟练且系统的掌握了cpp,虽然个人方向是SDR,但算法这类思维上的练习还是不能将就,以后的开发无论是硬件还是软件亦或者是仿真都离不开这些基本的能力。废话就说到这里,各位共勉!题目反转链表反转链表原创 2021-03-10 00:15:46 · 92 阅读 · 1 评论 -
20200909:链表类题目集合下
链表类题目集合下题目思路与算法代码实现写在最后题目1.138. 复制带随机指针的链表2.21. 合并两个有序链表3.23. 合并K个升序链表思路与算法返回深拷贝这个题目的意思读清楚就好了,要去找确定那个random指针到底指向了哪个节点。这是关键。用map来映射比较清晰,附上cpp和java两种语言的代码题解合并链表的题目思路大致相同,对21来讲,合并两个链表,两种方法,无非是使用dummy_head这类方法或者是使用递归来实现。具体见代码,对23来讲,可以使用排序的方法,排序的依据为原创 2020-09-09 11:56:11 · 111 阅读 · 0 评论 -
20200908:链表类题目集合上
链表类题目集合上题目思路与算法代码实现复杂度分析题目1.力扣160. 相交链表2.141. 环形链表3.142. 环形链表 II思路与算法160相交链表:两种方法,直观的就是set存值,将set中存入一个表的指针,然后遍历另一个表,如果存到相同的set,那么该点就是这个交点。亦或者用另一种方法,将长短链表对齐,将长链表和短链表的尾巴对齐,头部也移动至对齐,然后开始同步后移指针,当指针所指的节点相同时,即为那个相交点,本题很简单,但是也很基础,注意理解。141和142的解答是基本一致的,原创 2020-09-09 00:19:52 · 132 阅读 · 0 评论