- 博客(5)
- 收藏
- 关注
原创 关于HashMap被面试官问倒后,含泪整理
数据结构 java1.7:数组+链表 java1.8:数组+链表+红黑树 单个节点的结构: static class Node<K,V> implements Map.Entry<K,V> { final int hash; final K key; V value; Node<K,V> next; ... } 所以说横着看第一排是一个数组,竖着看是一个个链表,或者一棵树,我们都知道ha
2022-03-09 17:47:01
200
1
原创 线程进程区别,通信方式
进程 进程的并发性 现在的操作系统多为并发执行,引入并发执行的目的是为了提高资源利用率。在多道系统出现后为了划分系统内部情况引进了进程的概念。 进程是系统进行资源分配和调度的独立单位 进程控制块 进程控制块PCB是进程实体的一部分,是操作系统中最重要的记录型数据结构。PCB中记录了操作系统所需的、用于描述进程当前情况以及控制进程运行的全部信息。 线程 线程的引进 由于进程是资源拥有者,进程创建,撤销等操作系统都需要付出较大的时空开销,因此不宜频繁创建,也限制了并发度,将进程的两个属性分开,作为调度和分派
2022-03-07 00:05:54
398
原创 动态规划(1)——爬楼梯,最长回文子串
最近要开始练动态规划了,这个部分我一直都很害怕,很抗拒,因为一开始学的时候没有看概念直接扣题,书也是看的算法导论,导致我对这部分很害怕,所以决定系统的学习练习一下动态规划,想深入理解一下。结合了各路大佬以及一些书籍总结在此。(相看题的直接往下翻) 1.动态规划题怎么想思路? 动态规划不是某一种具体的算法,而是一种算法思想:若要解一个给定问题,我们需要解其不同部分(即子问题),再根据子问题的解以得出原问题的解。 既然是一种思想所以我们在解题的时候怎么能带入这种思想去想问题呢? 我们需要了解一下几个概念: 1.
2021-01-23 19:32:32
245
原创 层序创建二叉树,层序遍历二叉树
在学习树的过程中发现,他们都有一个共同的特点,无论是在创建时还是遍历时,都是需要先父母再左孩子右孩子的顺序如图 层序遍历时顺序为A->B->C->D->E->F->G,先被访问的结点,他的孩子也是先被访问的,层序创建二叉树时,先创建的结点他的孩子也先创建,符合先进先出原则,因此可以用队列来实现。所以他们的共同点就是都可以用队列来帮助实现。 那就先从较为简单的遍历开始吧! 1.层序遍历 思路:刚才分析时我们发现可用队列,第一步,若根节点不为空我们先让根节点入队,判断他的左
2021-01-18 14:59:57
8380
5
原创 线索二叉树及其遍历
1.为什么要对二叉树线索化? 先看下图二叉树: 不难看出有许多空指针域的存在,那对于有n个结点的二叉树它的空指针域有多少呢?一个n结点二叉树总指针域为2n(每个都有左右孩子两个指针域),而n个结点二叉树含有n-1条分支线,反过来想就是没有多少条分支线就有多少个空指针域,所以空指针域为2n-(n-1)=n+1个,空指针太多浪费内存资源。如果我们能把这些空地址放上结点的前驱和后继,那将会节省很多时间。 2.什么是线索化? 将二叉树变为线索二叉树的过程称为线索化。 按某种次序将二叉树线索化的实质是:按该次序遍历
2021-01-15 13:24:34
3091
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人