
DS&Algorithm
文章平均质量分 52
数据结构与算法,总结与记录
Kensin_
中科院信工所在读,想变强的计算机渣硕一枚
展开
-
为什么函数调用要用“栈”来保存临时变量呢?用其他数据结构不行吗?
为什么函数调用要用“栈”来保存临时变量呢?用其他数据结构不行吗? 其实,我们不一定非要用栈来保存临时变量,只不过如果这个函数调用符合后进先出的特性,用栈这种数据结构来实现,是最顺理成章的选择。 从调用函数进入被调用函数,对于数据来说,变化的是什么呢?是作用域。所以根本上,只要能保证每进入一个新的函数,都是一个新的作用域就可以。而要实现这个,用栈就非常方便。在进入被调用函数的时候,分配一段栈空间给这...原创 2019-01-08 14:28:26 · 2322 阅读 · 0 评论 -
内存中的堆栈和数据结构堆栈不一样!
内存中的堆栈和数据结构堆栈根本不是一个概念 内存中的堆栈和数据结构堆栈不是一个概念,可以说内存中的堆栈是真实存在的物理区,数据结构中的堆栈是抽象的数据存储结构。 内存空间在逻辑上分为三部分:代码区、静态数据区和动态数据区,动态数据区又分为栈区和堆区。 代码区:存储方法体的二进制代码。高级调度(作业调度)、中级调度(内存调度)、低级调度(进程调度)控制代码区执行代码的切换。 静态数据区:存储全局变量...原创 2019-01-08 14:30:31 · 284 阅读 · 0 评论 -
Volunteer recruitment
Description Suppose you will recruit a group of volunteers for a coming event. It is estimated that this event will take N days to complete, and the i(th) day needs at least Ai volunteers. The number ...原创 2019-12-16 19:51:18 · 375 阅读 · 0 评论 -
寻找二叉树上从根结点到给定结点的路径
就这,写个递归差点把自己写傻了。 一、递归实现 思想:借助栈结构来保存路径上的结点,首先从根结点开始,一直往左找,如果左边找到就返回true;否则,如果左边找不到并且右子树不为空的情况下再继续往右子树找。如果左右子树都找不到,就弹出栈顶结点并返回false。方法运行完毕后,栈中保存的元素就是一条从根到给定结点的路径。 public static boolean searchNode(TreeNode root,Stack<TreeNode> s,TreeNode node) {转载 2021-01-12 21:36:55 · 1412 阅读 · 0 评论 -
剑指Offer-2.3节-数据结构
剑指Offer-2.3节-数据结构 该节主要讲述了面试当中极易考察的几种数据结构。主要包括:数组、字符串、链表、树、栈和队列。 本章节涉及到了很多后续出现的题目,因此适合在读完全书后,再次阅读。 1. 数组中重复的数字 数组,占据一块连续的内存空间,并按照顺序存储数据。 因此可以根据下标在O(1)时间读/写任何元素。 在使用时,格外注意数组越界问题。 T3找出数组中重复的数字 剑指P39 3种方法,最优算法:时间复杂度,空间复杂度o(n) 方法 时间复杂度 空间复杂度 对数组排序 nlog原创 2021-01-29 22:07:13 · 108 阅读 · 0 评论