殷东亮的博客

数据结构 — 哈希表(Hash Table) [ Doc ]

May 20, 2022
算法, 数据结构

基础概念 # 哈希表是一种常见的数据结构,也叫散列表。哈希表最大的优点是高效,在哈希表中插入、删除或查找一个元素都只需要 O(1) 的时间。 因此,哈希表经常被用来优化时间效率。除了专门考散列表的题,也经常作为辅助计 ...

数据结构 — 数组(Array) [ Doc ]

May 19, 2022
算法, 数据结构

一维数组 # 数组常被用来当做栈、堆和队列的容器,除此之外,大多是单纯只涉及数组的题目。 特点: 支持下标 支持切片 有固定长度或可变长度 应用场景 # 数组结构很简单,但是出的题涉及的算法类型比较多,比如排序、二分法 ...

数据结构 — 栈(Stack) [ Doc ]

May 15, 2022
算法, 数据结构

基础知识 # 栈是一种常用的数据结构,它最大的特点是“后入先出”,即后进入栈中的元素最先出来,为了确保“后入先出”(LIFO)的顺序,栈的插入(push)和删除(pop)操作都发生在栈顶。 如果数据保存的顺 ...

数据结构 — 字符串(String) [ Doc ]

May 12, 2022
算法, 数据结构

字符串本身的数据结构并不复杂,同数组非常类似,没啥特别需要介绍的,就是题一般都不简单。 做题需要考虑: 有的字符串一定是 26 个字母,有的可能会包含空格。 注意事项 # Golang # 注意:Go 的 for 循环得到的是 rune 类型的字符, ...

数据结构 — 二叉树(Binary Tree) [ Doc ]

May 10, 2022
算法, 数据结构

基本概念 # 父节点,子节点,叶子节点 # 叶子节点: 一棵树当中没有子结点的结点称为叶子结点。 高度和深度 # 树的高度:节点到叶子节点的最大值就是其高度。 树的深度:高度和深度是相反的,高度是从下往上数,深度是从上 ...

常用算法 — 排序算法 [ Doc ]

May 9, 2022
算法

排序是非常基础、重要的算法,它将若干数据依照特定的顺序进行排列。如果排序的对象是数值,那么按数值递增或递减的顺序进行排序;如果排序的对象是字符串,那么按照字典顺序进行排序。由于数据排序之后能够利用二分 ...

数据结构 — 链表(Linked list) [ Doc ]

May 6, 2022
算法, 数据结构

基本概念 # 单向链表 # JavaScript # function ListNode(val, next) { this.val = (val === undefined ? 0 : val) this.next = (next === undefined ? null : next) } Golang # type ListNode struct { Val int Next *ListNode } 双向链表 # 双向链表在单向链表节点的基础上增加了指向前一个节点的指针,这样一来,既可以从头节点开始从前往后遍历 ...

AJAX 是什么?

May 2, 2022
前端, 计算机网络, 浏览器, JavaScript

这个问题既熟悉又有点陌生,先看概念。AJAX 是 Asynchronous Javavascript XML 的缩写,即异步 JavaScript 和 XML。使用 AJAX 技术可以在无需重新加载整个网页的情况下,能够更新部分网页,从而给带来更好的用户体验。另外 AJAX 不仅使用 XML,实际上由于 ...

浏览器的事件机制

Apr 18, 2022
前端, 浏览器

事件是在编程时系统内发生的动作或者发生的事情,系统响应事件后,如果需要,我们可以用事件处理器(event handler)对事件做出回应。浏览器中常见的可以触发事件的时机比如有: 用户在某个元素上点击鼠标 ...

搞懂原型链

Apr 11, 2022
前端, JavaScript

与一般基于类的面向对象语言(C++、Java)不同,JavaScript 是基于原型的语言。 原型 [[Prototype]] # 打开浏览器的控制台,输入 let b = {"hello": "world"} ,然后查看 b ,你会发现一个 [[Prototype]] 属性。这是每个对象都有的隐藏属性,它要么 ...


© 2012-2024 YINDONGLIANG