摘要:
问题描述工作空闲之余,蒜头君经常带着同事们做游戏,最近蒜头君发明了一个好玩的新游戏:n 位同事围成一个圈,同事 A 手里拿着一个兔妮妮的娃娃。蒜头君喊游戏开始,每位手里拿着娃娃的同事可以选择将娃娃传给左边或者右边的同学,当蒜头君喊游戏结束时,停止传娃娃。此时手里拿着娃娃的同事即是败者。玩了几轮之后, 阅读全文
摘要:
三维形体的表面积 在 N * N 的网格上,我们放置一些 1 * 1 * 1 的立方体。 每个值 v = grid[i][j] 表示 v 个正方体叠放在对应单元格 (i, j) 上。 请你返回最终形体的表面积。 示例 1: 输入:[[2]] 输出:10示例 2: 输入:[[1,2],[3,4]] 输 阅读全文
摘要:
平面上有 n 个点,点的位置用整数坐标表示 points[i] = [xi, yi]。请你计算访问所有这些点需要的最小时间(以秒为单位)。 你可以按照下面的规则在平面上移动: 每一秒沿水平或者竖直方向移动一个单位长度,或者跨过对角线(可以看作在一秒内向水平和竖直方向各移动一个单位长度)。 必须按照数 阅读全文
摘要:
链式队列 链式队列,简称"链队列",即使用链表实现的队列存储结构。 结构体 struct Node{ DataType info; Node * next; }; typedef Node* PNode; struct LinkQueue{ PNode front; PNode rear; }; t 阅读全文
摘要:
队列 队列,和栈一样,也是一种对数据的"存"和"取"有严格要求的线性存储结构。 与栈结构不同的是,队列的两端都"开口",要求数据只能从一端进,从另一端出,如图 1 所示: 图 1 队列存储结构 队列存储结构的实现有以下两种方式: 顺序队列:在顺序表的基础上实现的队列结构; 链队列:在链表的基础上实现 阅读全文
摘要:
栈存储结构 栈和链表的区别 同顺序表和链表一样,栈也是用来存储逻辑关系为 "一对一" 数据的线性存储结构 从图 1 我们看到,栈存储结构与之前所学的线性存储结构有所差异,这缘于栈对数据 "存" 和 "取" 的过程有特殊的要求: 1.栈只能从表的一端存取数据,另一端是封闭的; 2.在栈中,无论是存数据 阅读全文
摘要:
顺序栈 顺序栈定义 用顺序存储结构实现的栈,即利用一组地址连续的存储单元依次存放自栈底到栈顶的数据元素,同时 由于栈的操作的特殊性,还必须附设一个栈顶指针(top)来动态的指示栈顶元素在顺序栈中的位置。 通常以 top= -1 表示栈空。 结构体定义 struct SeqStack{ int MAX 阅读全文
摘要:
双向链表 1. 双向链表的简介&概念 单链表在很多时候已经可以胜任很多优秀的操作了,但是,单链表任然存在不足,所谓‘单链表’,是指结点中只有一个指向其后继的指针,具有单向性,有时需要搜索大量数据的时候,就必须要多次进行从头开始的遍历,这样的搜索不是很便利。 图:单链表示意图 对此在单链表的基础上,产 阅读全文
摘要:
链接表示 ➢ 2.3.1 单链表 ➢ 2.3.2 循环链表 ➢ 2.3.3 双链表 单链表 线性表的链式存储结构是用一组任意的存储单元存储线性表的各个数据元素。为了表示线性表中元素的先后关系,每个元素除了需要存储自身的信息外还需保存直接前趋元素或直接后继元素的存储位置。 线性链表有关术语 结点:数据 阅读全文
摘要:
什么是线性表? 是零个或者多个类型相同元素的又穷序列。 基本运算: 1. PSeqList createNullList_seq(int m) 创建并且返回一个空线性表。 2. int insert_seq( PSeqList palist, int p, DataType x ) 在线性表list 阅读全文