
算法
孙尚香蕉
熬夜不掉发
展开
-
冒泡排序算法
对存放原始数组的数据,按照从前往后的方向进行多次扫描,每次扫描都称为一趟。当发现相邻两个数据的大小次序不符合时,即将这两个数据进行互换,如果从小大小排序,这时较小的数据就会逐个往前移动,好像气泡网上漂浮一样。原创 2025-02-02 16:43:46 · 153 阅读 · 0 评论 -
递归算法详解
那么问题就转化成了第四节台阶和第三节台阶的跳法既: f(n) = f(n-1) + f(n-2)假设现在有5节台阶,那么跳上第五节台阶有两种方案。第二节台阶:有每次都跳一节和一次跳两节两种跳法。1.确定递归函数的参数和返回值。第一:从第四节台阶向上跳一节,第二:从第三节台阶上向上跳两节。3.确定单层递归的逻辑。第一节台阶:只有1种跳法。原创 2025-02-02 16:40:01 · 164 阅读 · 0 评论 -
双指针算法详解
双指针技巧主要分为两类:左右指针和快慢指针对于单链表来说,大部分技巧都属于快慢指针,在数组中并没有真正意义上的指针,但我们可以把索引当做数组中的指针。原创 2025-02-02 16:36:59 · 191 阅读 · 0 评论 -
有效的括号
遍历字符串匹配的过程中,栈已经为空了,没有匹配的字符了,说明右括号没有找到对应的左括号return false。已经遍历完了字符串,但是栈不为空,说明有相应的左括号没有右括号来匹配,所以return false。遍历字符串匹配的过程中,发现栈里没有要匹配的字符。所以return false。原创 2025-02-02 16:32:13 · 436 阅读 · 0 评论 -
用一个数组实现两个栈
3.如果需要对第一个栈执行元素入栈操作,那么将元素赋值到左边下标变量指示的位置。4.如果需要对第二个栈执行元素入栈操作,那么将元素赋值到右边下标变量指示的位置。2.左边的下标指示第一个栈,右边的下标指示第二个栈。1.初始化两个下标变量分别指向数组的左右两端。5.第一个栈向右增长,第二个栈向左增长。用一个数组实现两个栈。原创 2025-02-02 16:14:43 · 529 阅读 · 0 评论 -
用队列实现栈
2.入栈的时候,找到不为空的队列,出size-1个元素到重新插入到队列当中,剩下的这个元素就是出栈的元素。2.入栈的时候,找到不为空的队列,出size-1个元素到另一个队列中,剩下的这个元素就是出栈的元素。第二种是用一个队列实现一个栈。基本思路:使用两个队列,其中一个队列用来存放元素,另一个用来做辅助输出。基本思路:使用两个队列,其中一个队列用来存放元素,另一个用来做辅助输出。,刚开始都为空指定入到一个队列。,刚开始都为空指定入到一个队列。1.入栈的时候,入到不为空的。1.入栈的时候,入到不为空的。原创 2025-02-01 23:20:53 · 244 阅读 · 0 评论 -
用栈去实现队列
我们要用栈的先进后出,来模拟实现队列的先进后出。我们需要借助两个栈去实现,分别叫做栈1和栈2。栈1主要是用来存储数据的,我们将要插入的数据全部存放在栈1当中。首先判断栈2当中是否有数据,如果有,怎直接返回栈2的顶部元素。如果没有,则将栈1当中的数据全部放入到栈2当中。队列的特点:先进先出。原创 2025-02-01 23:19:06 · 149 阅读 · 0 评论