![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构与算法
不秃头的小黄人
这个作者很懒,什么都没留下…
展开
-
单调栈的应用
滑动窗口最大值此题是滑动窗口中的数字个数是固定的,如果窗口中的数字个数在动态变化,比如R右边界增加,L不变…那有没有一种数据结构结构,可以让我们以O(1)的复杂度得到此时滑动窗口中的最大值或者最小值呢???有,那就是单调栈!!!单调栈可以使用双端队列来实现!!该单调栈中保证从头部到尾部保证数据的严格递增或递减;当R往右移动一个位置时,如果此时R位置的数,满足单调中的严格递增或递减顺序,则放入到队列尾部如果不满足,则依次取出队列中的值,直到放入的数满足严格递增或递减的顺序当L往右动时,如果L.原创 2021-11-21 17:47:18 · 1213 阅读 · 0 评论 -
Java快慢指针的妙用!!! 删除链表的倒数第 N 个结点
原创 2021-09-01 17:00:14 · 151 阅读 · 0 评论 -
力扣102题 二叉树层序遍历
解题思路:广度优先,队列,空间换时间/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode() {} * TreeNode(int val) { this.val = val; } * TreeNode(int val, TreeNode left, .原创 2021-05-03 16:50:22 · 216 阅读 · 0 评论 -
链栈 顺序栈(c++代码)
栈1. 顺序栈2.链栈1. 顺序栈#include <iostream>using namespace std;#define MAXSIZE 12#define OK 1#define ERROR 0//顺序栈typedef struct Sqstack { int* top; int* base; int stacksize;}Sqstack;int initSatck(Sqstack& s) { //构造一个空栈 s.base = new原创 2020-05-18 19:06:10 · 384 阅读 · 0 评论 -
(含头结点)单链表的节点删除,增加---最易犯错!!!
单链表增加删除1.节点插入2.节点删除1.节点插入题目来源于PTA本题要求实现带头结点的单链表插入操作,插入成功返回1,否则返回0。函数接口定义:int insert_link ( LinkList L,int i,ElemType e);L是单链表的头指针,i为插入位置,e是插入的数据元素,插入成功返回1,否则返回0。裁判测试程序样例:#include <stdio.h>#include <stdlib.h>typedef int ElemType;t原创 2020-05-12 23:34:27 · 724 阅读 · 0 评论