标签:算法
  本篇介绍队列的链式存储,因为队列是在两头插入和删除的逻辑结构,因此要用具体的物理存储结构的时候,需要用到两个指针。一个是头指针,一个是尾指针。头指针指向队头指针,尾指针指向队尾指针,即单链表的最后一个结点。下面介绍有关链队列的算法实现。 一:队列的链式存储类型 typedef stru
1 /// <summary> /// 与传统比较的排序算法不一样的排序的手段,使用下标来确定正确位置的排序方法 /// </summary> /// <param name="array"></param> /// <re
2020-09-15 11:36:16 玩过扑克牌的人一般都有过从小到大将牌排好的习惯,当你抽到一张牌小于你手上某个位置上的拍的时候,你都会将新拿到的牌插入到适合的位置。 1 using System; 2 using System.Collections.Generic; 3 u
目录前言复杂度分析编码常规变种局限性声明 前言 概念:二分查找(Binary Search)算法,一种针对有序数据集合的查找算法,也叫折半查找算法。 思想:二分查找针对的是一个有序的数据集合( 升序或降序 ),查找思想有点类似分治思想。每次都通过跟区间的中间元素对比,将待查找的区间缩小为之
用两个栈来实现一个队列,完成队列的 Push 和 Pop 操作。 队列中的元素为 int 类型。 思路 队列是先进先出的,而栈是后进先出的,如何用两个栈来实现队列的效果呢? 我们假设只用 stack1 来存放元素,这样的话,直接 stack1.pop 是行不通的。每次要弹出元素时,将
前言 大家好,本篇文章是《齐姐说数据结构》系列的第三篇,更多数据结构和算法的文章已经整理在我的 Github 上了:https://github.com/xiaoqi6666/NYCSDE HashMap 是无论在工作还是面试中都非常常见常考的数据结构。 比如 Leetcode 第一题 T
  全解容易(YP)问题——定义:对于非判定性原题,能在多项式时间内给出全部正确解。 例解容易(SP)问题——定义:对于非判定性原题,能在多项式时间内给出至少1个正确解。 判解容易(JP)问题——定义:对于非判定性原题的一个待验解,能在多项式时间内判定正误。 验判(对判定的复验)容易(CP
大家好,这里是《齐姐聊算法》系列之 Top K 问题。 Top K 问题是面试中非常常考的算法题。 8Leetcode 上这两题大同小异,这里以第一题为例。 题意: 给一组词,统计出现频率最高的 k 个。 比如说 “I love leetcode, I love coding” 中频率最
联合体(union) 数据类型的一种, 允许您在相同的内存位置存储不同的数据类型。您可以定义一个带有多成员的共用体,但是任何时候只能有一个成员带有值。共用体提供了一种使用相同的内存位置的有效方式。 一般应用场景为节省内存。 定义 union A { char i; int j;
Codeforce 1328 E. Tree Queries 解析(思維、LCA) 今天我們來看看CF1328E題目連結 題目 給你一棵樹,並且給你(mle2e5)個詢問(包含(k)個點),求能不能找到一個從點(1)開始的路徑,使得這(k)個點離這個路徑的距離(le1) 前言 久違的沒
二叉树中的最大路径和 题目: 给定一个非空二叉树,返回其最大路径和。 本题中,路径被定义为一条从树中任意节点出发,沿父节点-子节点连接,达到任意节点的序列。该路径至少包含一个节点,且不一定经过根节点。 示例 1: 1 / 2 3 输出:6
P1295 [TJOI2011]书架 本题思路比较好想(对我来说不是),但代码细节很多,奈何洛谷的题解只有思路,然后就是 没有丝毫解释的代码,让人看起来很头疼(~~ 尤其是像我这样的蒟蒻~~),所以便打算写一篇带 注释的题解; 题目大意 题目链接 给出一个长度为 n 的序列 h,请将 h
前言 大家好,这里是《齐姐聊算法》系列之拓扑排序问题。 Topological sort 又称 Topological order,这个名字有点迷惑性,因为拓扑排序并不是一个纯粹的排序算法,它只是针对某一类图,找到一个可以执行的线性顺序。 这个算法听起来高大上,如今的面试也很爱考,比如当时