殷东亮的博客

线上练习跟老外用英语对话

Jun 15, 2022
日常

五月到六月,由于疫情原因,被迫居家隔离了一个月,在家也特别无聊,就下了几个可以和外国人线上对话的 App(Cambly、Preply,需付费)打算练练英语口语,于是开启了一段非常有意思的与老外聊天的经历 ...

常用算法 — 滑动窗口 [ Doc ]

Jun 13, 2022
算法

滑动窗口也是一种双指针算法,但是滑动窗口特别强调窗口向一个方向滑动,看起来简单,但是却属于最难的一种双指针技巧,力扣上的题一般都是中等或困难难度。首要问题是识别什么样的问题需要滑动窗口解决,最常见的题 ...

常用算法 — 动态规划 [ Doc ]

Jun 10, 2022
算法

介绍 # 动态规划(Dynamic Programming,简称DP)常常适用于有重叠子问题和最优子结构性质的问题,并且记录所有子问题的结果,因此动态规划方法所耗时间往往远少于朴素解法。 使用动态规划解决的问 ...

常用算法 — 双指针 [ Doc ]

Jun 6, 2022
算法

双指针有时也叫滑动窗口,如果一定要和滑动窗口区别,那就是滑动窗口的窗口一般是向一个方向滑动,而双指针一般强调左右两个指针。除此之外,可能还会单独强调快慢指针,快慢指针也是一种双指针,但是两个指针的运动 ...

常用算法 — 二分查找 [ Doc ]

Jun 4, 2022
算法

二分查找利用已经排好序的数组,每次查找可以将查找范围减半,查找范围内只剩一个数据时查找结束。 代码模板 # 简单题的模板几乎都是统一的,根据题目的条件再灵活调整就可以了,比如 704. 二分查找。 var search = function(nums, target) { let low = 0, ...

数据结构 — 队列(Queue) [ Doc ]

May 21, 2022
算法, 数据结构

普通队列 # 队列的特点就是先进先出,后进后出。可以使用数组、链表实现队列。 队列的操作 # 插入元素(add)一般指在队列首部插入元素。 删除元素(remove)指删除队列末尾的元素。 获取元素(get)一般是获 ...

数据结构 — 哈希表(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 类型的字符, ...


©殷东亮 2012 - 2023