
数据结构
王小闹儿
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
算法训练营(五) 堆、栈、队列、优先队列
实战中经常用到的是双端队列——deque。一、优先队列——priority queue1.1 基础知识1. 插入操作——O(1) 2. 取出操作——O(logN)——按照元素的优先级取出 3. 底层实现的数据结构较为复杂,可以由heap实现、也可以由bst(二叉搜索树)实现等1.2 预习题https://leetcode-cn.com/problems/valid-parentheses/ https://leetcode-cn.com/problems/...原创 2020-10-26 07:13:59 · 648 阅读 · 0 评论 -
算法训练营(二) 复杂度分析、递归
算法效率的度量方法所谓算法,是指基于特定的计算模型,旨在解决某一信息处理问题而设计的一个指令序列。在程序编写前,需要依据统计方法对算法进行估算。1.1 影响执行速度的因素 算法采用的策略方案 编译产生的代码质量 问题的输入规模 机器执行指令的速度 1.2 时间复杂度和空间复杂度基础概念:https://www.zhihu.com/question/21387264 写程序时需要分析时间和空间复杂度 掌握一两种编程工具,刻意练..原创 2020-10-18 13:54:25 · 726 阅读 · 0 评论 -
算法训练营(一)刷题步骤、脑图、技法
一、脑图二、刷题四件套1. 审题2. 找到可能解法,先普通,后深入。列出时间复杂度和空间复杂度3. 多coding4. 写一些测试用例进行测试原创 2020-10-17 09:26:34 · 1774 阅读 · 1 评论 -
算法训练营(四) 跳表
一、引——如何给链表加速?思想——空间换时间通过添加索引的方式来加速时间复杂度分析——O(logn)二、基本概念跳跃表(skiplist)是一种随机化的数据, 由 William Pugh 在论文《Skip lists: a probabilistic alternative to balanced trees》中提出, 跳跃表以有序的方式在层次化的链表中保存元素现实中的跳表形态从图中可以看到, 跳跃表主要由以下部分构成:表...原创 2020-10-20 23:27:04 · 489 阅读 · 0 评论 -
算法训练营(三) 数组、链表基本实现和特性
一、数组1.1 基础概念底层硬件实现是通过内存管理器,内存开辟了一段连续的地址,每次访问时可以根据内存管理器进行访问,因此每次访问的时间复杂度为O(1)。因其中元素的物理地址与其下标之间满足这种线性关系,故亦称作线性数组(linear array)。1.2 vector模板类1.3 实战题目1. 盛最多水的容器给你 n 个非负整数 a1,a2,...,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个...原创 2020-10-18 22:23:17 · 974 阅读 · 0 评论 -
二叉树的构建、递归和非递归版本的三种遍历、层序遍历
二叉树代码实现1、根据层序遍历结果构建二叉树(百度实习面试考过) 2、二叉树的三种遍历(百度实习一面考过)递归#include<iostream>#include<vector>#include<queue>using namespace std;//定义树的基本框架struct TreeNode { int val; T...原创 2019-04-16 13:19:21 · 422 阅读 · 0 评论