树基础 定义 数的定义 可以使用递归的方法定义:一棵树是一些节点的集合。一棵树由根节点和0~多个非空树(即子树)组成。这些子树中的每一颗根节点都被来自母树跟的一条有向边链接。母树的根节点被称为父节点,子树的根节点被称为子…
标签:数据结构
Java怎么实现LRU缓存(最近最少使用)
LRU是Least Recently Used 的缩写,翻译过来就是“最近最少使用”,LRU缓存就是使用这种原理实现,简单的说就是缓存一定量的数据,当超过设定的阈值时就把一些过期的数据删除掉,比如我们缓存10000条数据…
BZOJ-2878: [Noi2012]迷失游乐园(树,环DP)
题目:http://www.lydsy.com/JudgeOnline/problem.php?id=2878 在树上维护两个东西up(v),down(v),表示向上和向下的期望长度,n=m的话就把环搞出来,弄成个环套树…
设计一个消息中间件的前置(三)| 数据结构及高可用设计
前两篇讲到了基本思路和netty+protobuf框架,今天这篇介绍一下前置的基本数据结构及用户校验,熔断的流程。 数据源及高可用 前置的数据源有两个,按照优先级来说,应该是这样的顺序: 缓存(Redis) 数据库(My…
蚂蚁金服面试
一面 hashmap的实现原理,多线程并发操作hashmap会有什么问题? 原理简述:使用数组加链表的数据结构,根据给出的key -hash到数组的一个下标,如果当前下标有值建立一个链表 指向next, 注意的是新插入的…
leecode刷题(8)-- 两数之和
leecode刷题(8)– 两数之和 两数之和 描述: 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。 你可以假设每种输入只会对应…
11.spark sql之RDD转换DataSet
简介 Spark SQL提供了两种方式用于将RDD转换为Dataset。 使用反射机制推断RDD的数据结构 当spark应用可以推断RDD数据结构时,可使用这种方式。这种基于反射的方法可以使代码更简洁有效。 通过…
剑指Offer-38 数组中的单身贵族(位运算)
一个整型数组里除了两个数字之外,其他的数字都出现了偶数次。请写程序找出这两个只出现一次的数字。 集合法 其实,我觉得使用HashSet挺好的,时间复杂度也可以接受。 遍历数组 如果数不在集合中,添加到集合中 如果数在集合…
银行家算法的模拟和实现
最近在做操作系统的课程设计,其中实验四是“银行家算法的模拟和实现”。好在前面看过一点,有点印象。所以想尝试自己写一下,下面是我的编码过程以及个人的一点分享,如果有问题欢迎指出,也希望能和我一起交流。我的邮箱是:jiang…
pybitcointools源码分析之比特币交易数据结构
需要了解的背景知识 首先要了解比特币的两种脚本类型: P2PKH(pay-to-public key-hash)和P2SH(pay-to-scrip-hash) 这部分可以在 <<精通比特币>>书…
数据结构(四):栈的应用之表达式求值
1、表达式求值 问题描述: 用户从控制台输入一个数学表达式(所有输入均合法),数学表达式只包含四则运算,程序需输出表达式对应的结果,如: 输入:(1+2)*3+4-5 输出:8 解题思路: 涉及到的数学符号有 +、-、*…
排序算法之选择排序
选择排序法(selection sort) 来自维基百科 选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理如下。首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余…