
算
少女,你的代码掉了
头秃少女的日常思考
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
leetcode刷题之239.滑动窗口的最大值
正确的解法是使用双端队列来处理这个window的功能。c++ deque有现成的stl可以使用需要注意几个点1. 需要维护队列内部的最大值在队首的位置,每次想要添加一个新元素的时候就循环和前面的元素做比较2. 判断一个元素是否过期,可以直接用当前队首和应该淘汰的数字进行对比如果一致就去除主要逻辑:1. 如果该数据小于新加入的数据,再上一步就应该被清除所以不需要考虑过期的问题2. 如果当前的数据大于新加入的数据,但是又恰好等于i -k这个位置的数据,那么在确定最大值之前就需要将它.原创 2020-10-12 20:58:11 · 209 阅读 · 0 评论 -
个人学习 -- KMP算法
如此愚钝 一天才学会KMP算法的思想就是,如果已经匹配的模式串内部有重复的部分,那么我们移动的时候就能多移动几步,而且由于模式串的大小都是固定的,所以我们可以提前的求出有哪些部分是重复的。这里说的重复是指,前缀子串和后缀子串举个例子: e x a m p l e前缀子串: e , ex, exa, exam , examp , exampl后缀子串: e , le , ple, ...原创 2020-01-04 16:19:29 · 128 阅读 · 0 评论 -
AVL树学习
AVL树为什会出现?我们之前有学习使用二叉查找树,但是二叉查找树在使用的时候也会出现一些问题,当恰好所有的数据都是按照大小顺序插入的话,就有可能将我们的二叉树编程链表,就导致树结构退化为链表结构。什么是不平衡其实不平衡就是一个节点下面的左子树和右子树的高度相差太多,没有雨露均沾,导致出现了不平衡的现象。如何解决不平衡?其实我们从局部看,不平衡的情况其实就归为四种。左—左类型其实对于...原创 2020-01-02 16:31:32 · 176 阅读 · 0 评论 -
基础算法 数组转成队列
/******array2queue.h********/#ifndef __ARRAY_QUEUE_H__#define __ARRAY_QUEUE_H__#include <iostream>#include <stdio.h>#include <memory.h>#define ERROR_NOSPACE 10#define E...原创 2019-04-08 15:09:22 · 593 阅读 · 0 评论 -
基础算法 数组改成栈
#ifndef ARRAY2STACK_H#define ARRAY2STACK_H#include <memory.h>#include <iostream>class array2stack{ public: array2stack(); ~array2stack(); int poll(); ...原创 2019-04-08 16:34:53 · 197 阅读 · 0 评论 -
基础算法之二叉树 1 平衡二叉树的判断
什么是平衡二叉树?平衡二叉树指的是二叉树的每一个节点的左子树和右子树的高度差为不大于1所以由此推出判断的条件有每一个子树如果有一个出现不是平衡二叉树的话就一定不是平衡二叉树 如果遍历得到的某一个节点出现了,二叉树的高度之差大于1也不是二叉树 每次遍历之后都要返回左右子树的深度 如果该节点满足二叉树的要求,该二叉树的深度就是它下面最高的子树的大小加上自己的大小#include ...原创 2019-04-14 20:02:01 · 195 阅读 · 0 评论 -
基础算法之二叉树 2 二叉树的序列化和反序列化
关于二叉树的序列化和反序列化的概念解释第一次接触这个可能会比较懵,什么叫序列化和反序列化?序列化:系统为了保存二叉树的存储结构从而把二叉树变成了一串字符串记录在文件等地方 反序列化:就是将字符串去恢复成二叉树序列化的整个思路遇见NULL的时候用#占位,因为没有‘#’就很难区分左右的节点 每一个字符保证用一个字符隔开,我这边用的是_,因为不这样做的话就会分不清变量 按照前序遍历的...原创 2019-04-15 01:42:57 · 371 阅读 · 1 评论