堆优化的贪心,考虑种一棵树的最大收益,种了当前树两旁的树之后的收益为a[i-1]+a[i+1]-a[i] 用双向链表维护住左右关系,大根堆则可以“反悔”,维护另一个记录某个坑能不能种树的数组即可 代码: ...
分类:
其他好文 时间:
2019-09-22 12:41:56
阅读次数:
68
Redis 有 String,List,Set,Sorted Set,Hash 共 5 种数据类型String:键 => 字符串 key => string用法示例:set key stringList:键 => 双向链表key => [0 => string1 <-> 1 => string2 < ...
分类:
其他好文 时间:
2019-09-22 10:47:50
阅读次数:
87
双向链表 管理单向链表的缺点分析: 1、单向链表,查找的方法只能是一个方向,而双向链表可以向前或者向后查找 2、单线链表不能自我删除,需要靠辅助节点,而双向链表,则可以自我删除。 应用实例:使用带 head 头的双向链表实现 — 水浒英雄排行榜 双向链表如何完成遍历,添加,修改和删除的思路示意图: ...
分类:
其他好文 时间:
2019-09-22 10:39:34
阅读次数:
91
大并发服务器框架 大并发服务器设计目标 1. 高性能(High Performance). 要求编写出来的服务器能够最大限度发挥机器性能, 使得机器在满负荷的情况下能够处理尽可能多的并发请求, 对于大量并发请求能够及时快速做出响应 2. 高可用(High Availability). 要求服务器7\ ...
分类:
其他好文 时间:
2019-09-19 10:47:08
阅读次数:
128
一、几种类型 1.vector,支持快速随机访问,类似数组,通过下标方式来访问,但是对中间的插入或删除访问效率比较低; 2.list,双向链表,一个是数据项,一个是链表项,支持快速插入或删除,因为不需要移动位置,只需要修改它里边的一个指针、一个地址就可以; 3.deque,双端队列,在两端插入或删除 ...
分类:
编程语言 时间:
2019-09-18 00:55:57
阅读次数:
110
1、数据结构 ArrayList底层使用数组实现,默认大小10,容量不足时需动态扩容为原来的1.5倍 LinkedList底层使用双向链表实现,无大小限制 2、使用场景 ArrayList使用数组对于索引操作即(set get方法)时间复杂度为O(1) 而LinkedList索引时需要从头遍历从而找 ...
分类:
其他好文 时间:
2019-09-16 23:43:50
阅读次数:
109
线索二叉树利用二叉树空余的指针域,来实现二叉树的链式化。然后,就可以通过前驱,后继像双向链表一样根据某种遍历次序对树的结点进行访问。 数据结构: 建立线索二叉树: 不同的遍历顺序,会得到不同的线索二叉树。 一般使第线索链表的头和尾指向NULL(也可以加入一个头指针) 以中序遍历为例:(对左子树处理, ...
分类:
其他好文 时间:
2019-09-15 11:00:53
阅读次数:
207
单链表 删除链表中重复的结点 回文链表 查找单链表中间节点 查找单链表倒数第K个节点 单链表反转 数组转链表 链表转数组 奇偶链表 合并两个单链表 两个链表的第一个公共节点 双向链表 ...
分类:
编程语言 时间:
2019-09-15 01:47:02
阅读次数:
103
【题目】二叉树可以用常规的三种遍历结果来描述其结构,但是不够直观,尤其是二叉树中有重复值的时候,仅通过三种遍历的结果来构造二叉树的真实结构更是难上加难,有时则根本不可能。给定一棵二叉树的头节点head,已知二叉树节点值的类型为32位整型,请实现一个打印二叉树的函数,可以直观地展示树的形状,也便于画出 ...
分类:
编程语言 时间:
2019-09-02 23:36:37
阅读次数:
98
ArrayList是一个数组列表,其内部是使用一个数组来存放对象的。ArrayList只能在数组末尾添加数据。 LinkedList可以看做为一个双向链表。LinkList可以很方便在链表头或者链表尾插入数据,或者在指定结点前后插入数据。 LinkedList与ArrayList最大的区别是Link ...
分类:
其他好文 时间:
2019-09-02 17:31:59
阅读次数:
73