数据结构和算法
数据结构和算法
爱炒饭
每天进步一点点
展开
-
java实现单链表的插入、删除与反转
单链表结构如下: import java.util.NoSuchElementException; public class MyLinkedList<T> { private int size; private Node<T> first; private Node<T> last; public boolean add...原创 2020-02-08 19:34:49 · 564 阅读 · 0 评论 -
LRU算法和LinkedHashMap
LRU(最近最少使用)算法:如果数据在最近很少被使用,那么在后面使用的概率也会很低,那个数据回收时就倾向于回收这部分数据。它的底层实现是LinkedHashMap。 /** * @param maxSize for caches that do not override {@link #sizeOf}, this is * the maximum numbe...原创 2019-04-14 11:40:17 · 163 阅读 · 0 评论 -
二分查找
给定一个按照升序排列的整数数组 nums,和一个目标值 target。找出给定目标值在数组中的开始位置和结束位置。 你的算法时间复杂度必须是O(log n) 级别。 如果数组中不存在目标值,返回[-1, -1]。 示例 1: 输入: nums = [5,7,7,8,8,10], target = 8 输出: [3,4] 示例2: 输入: nums = [5,7,7,8,8,10]...原创 2019-08-03 16:02:25 · 94 阅读 · 0 评论 -
求两个数字链表之和
题目: 给出两个非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照逆序的方式存储的,并且它们的每个节点只能存储一位数字。 如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。 您可以假设除了数字 0 之外,这两个数都不会以 0开头。 示例: 输入:(2 -> 4 -> 3) + (5 -> 6 -> 4) 输出:7 ->...原创 2019-07-31 21:02:25 · 730 阅读 · 0 评论 -
二叉树
二叉树是的每个节点最多有两个子树(左子树和右子树)的树结构。如果二叉树的节点数为0则成为空树。任意非空二叉树都有且仅有一个根节点。 叶子节点:二叉树的终端节点,即度为0的节点。 节点的度:节点的子节点个数。 树的度:树的层数。 二叉排序树(又叫二叉查找树,也叫二叉搜索树)是这么具有特殊性质的二叉树:1、如果左子树不为空,则左子树的所有节点都小于它的父节点;2、如果右子树不为空,则右子树的所...原创 2019-08-09 20:40:48 · 1092 阅读 · 0 评论