虽是读书笔记,但是如转载请注明出处 [链接] .. 拒绝伸手复制党 以下是算法导论第15章的学习笔记 动态规划常用于最优化问题。可能存在多个取最优解的值,希望找到其中一个最优解。 {代码...} 动态规划的设计分为...
如果红黑树中的每个黑结点吸收它的红子女,并把它们的子女并入自身,描述这个结果的数据结构。 (2-3-4树) or 假设将一棵红黑树的每一个红结点 “吸收” 到它的黑色父结点中,来让红结点的子女变成黑色父结点的子女...
LinkedList 与 ArrayList 一样实现 List 接口,只是 ArrayList 是 List 接口的大小可变数组的实现,LinkedList 是 List 接口链表的实现。 LinkedList 可以被当做堆栈、队列(实现List接口)或双端队列(实现Deque...
在阅读HashMap和TreeMap的源码过程中,发现了一个奇怪的事情: 这些类执行了Serializable接口,却在关键地方,比如hashmap将存储数据的table 数组声明为transient. 这是何意?
虽是读书笔记,但是如转载请注明出处 [链接] .. 拒绝伸手复制党 关于二叉树的基本知识,可以参见:Java 实现基本数据结构 2(树) 以下是算法导论第13章的学习笔记 红黑树 BST的各种操作的时间复杂度是依赖于树的高...
查找树是一种数据结构,支持动态集合操作。在二叉查找树上执行基本操作的时间与树的高度成正比。对已n个节点的完全二叉树,各种操作的最坏情况运行时间O(logn). 但是如果二叉查找树退化成含n个节点的线性链,各种...
前面总结了,栈,队列,链表。 Java 实现基本数据结构 1(栈,队列,链表) 这篇笔记侧重点: 1 二叉树的三种遍历(前中后)迭代非迭代代码 2 重建二叉树的代码与分析 和 关于二叉树的题 简单理解 3 二叉查找树, ...
虽是读书笔记,但是如转载请注明出处 [链接] .. 拒绝伸手复制党 以下是算法导论第十章的学习笔记 1 栈 栈顶指针 top (初始值top = -1)指向栈顶元素,插入时先修改指针再插入,删除时先取栈顶元素再修改指针. 1.1 ...
假如三个POI,p1,p2,p3 三个用户,q1,q2,q3 用户的考虑的位置因素和非位置因素用x1,x2,x3和x4表示。比如分别是餐馆的价位, 距离,道路拥挤程度,交通车费。
虽是读书笔记,但是如转载请注明出处[链接] ..拒绝伸手复制党 以下内容是算法导论第九章的学习笔记。 1 求最大/小值 最优即O(n),比较n-1次 2 同时求最大值和最小值 最直白的是O(2n),比较2n-2次。还有一个优化的方...
(如果从重写方法会有什么特点来看,我们是不能重写静态方法的。虽然就算你重写静态方法,编译器也不会报错。也就是说,如果你试图重写静态方法,Java 不会阻止你这么做,但你却得不到预期的结果(重写仅对非静态...
时间复杂度O(n^2), 空间复杂度O(1) 排序时间与输入有关:输入的元素个数;元素已排序的程度。 最佳情况,输入数组是已经排好序的数组,运行时间是n的线性函数; 最坏情况,输入数组是逆序,运行时间是n的二次函数。
Given an array of integers, find two numbers such that they add up to a specific target number.
Java 虚拟机 Java 虚拟机(Java virtual machine,JVM)是运行 Java 程序必不可少的机制。JVM实现了Java语言最重要的特征:即平台无关性。原理:编译后的 Java 程序指令并不直接在硬件系统的 CPU 上执行,而是由 ...
ArrayList 和 LinkedList 基本的 List 操作是相同的。但是 ArrayList 底层是 数组实现的,LinkedList 是双向链表实现的(其中每个对象包含数据的同时还包含指向链表中前一个元素和后一个元素的应用)。 因此,如...
Latex提供直接画图的命令,其参考手册是pgf/tikz. 下面给个简单例子: \documentclass[11pt]{article} ... \usepackage{tikz} % Optional PGF libraries \usepackage{pgflibraryarrows} \usepackage{pgflibrarysnak...
Java 容器类库:抽象类和遗留构建. 可以看看看源码。比如HashMap这种容器就是看数组的组织形式和查询访问处理过程. 就是看 几个常用接口,比如put,get这些以及构造函数,就是数据初始化的时候都做了什么。
虽是读书笔记,但是如转载请注明出处[链接] ..拒绝伸手复制党 概述 Java泛型核心概念: 告诉编译器想使用什么类型,然后编译器帮你处理一切细节。 泛型的主要目的: 制定容器要持有什么类型对象,而且由编译器来...
栈(Stack)是限制仅在表的一端进行插入和删除运算的线性表。 java 没有栈这样的数据结构,如果想利用先进后出(FILO)这样的数据结构,就必须自己实现。
数组和其它容器之间的区别有三方面:效率、编译期类型检查和保存基本类型的能力,但是由于有了泛型容器和自动包装机制,现在最主要的区别就是效率。ArrayList 效率低很多。 数组是一种效率最高的存储和访问对象引...
滴滴出行服务端开发高级工程师。可内推。简历发...