殷东亮的博客

CSS 选择器语法举例

Jul 3, 2022
前端, CSS

简单选择器 # 标签选择器 # 标签选择器也叫元素选择器 /*标签选择器*/ tag {background-color: gold;} 类选择器 # /*类选择器*/ .someClass {background-color: gold;} ID 选择器 # /*ID 选择器*/ #someID {background-color: gold;} 组合使用 # 还有一种选择器也比较常见,形如 tag.class,但是查了 ...

经典问题 — 打家劫舍 [ Doc ]

Jul 1, 2022
算法

打家劫舍基本都可以用动态规划来解决。 房屋偷盗 # 剑指 Offer II 089. 房屋偷盗 环形房屋偷盗 # 剑指 Offer II 090. 环形房屋偷盗 维护一个 helper,设定 number 的起始位置,自底向上计算两次,取最大值。 var rob = function(nums) { if (nums.length === 0) { return 0 } if (nums.length === ...

常用算法 — 递归 [ Doc ]

Jun 29, 2022
算法

建立思维 # 理解递归的关键首先还是弄清楚二叉树的先序遍历、中序遍历和后序遍历的递归实现。任何递归可以说都处在这个模型中。 void traverse(TreeNode root) { if (root == null) { return; } // 前序位置 traverse(root.left); // 中序位置 traverse(root.right); // 后序位置 } 如果面试官明确要求不使用 ...

数据结构 — 前缀树(Trie) [ Doc ]

Jun 28, 2022
算法, 数据结构

Trie 又称前缀树、字典树、单词查找树,是一种二叉树衍生出来的多叉树,通常用来保存字符串,它的节点和字符串的字符对应,而路径和字符串对应,主要应用场景是处理字符串前缀相关的操作。 核心思想是空间换时间。利用字 ...

常用算法 — 贪心算法 [ Doc ]

Jun 25, 2022
算法

贪心算法(又称贪婪算法)是指,在对问题求解时,总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考虑,他所做出的是在某种意义上的局部最优解。贪心算法不是对所有问题都能得到整体最优解,关键是贪 ...

数据结构 — 堆(Heap) [ Doc ]

Jun 20, 2022
算法, 数据结构

介绍 # 堆(heap)分为最大堆(大根堆/大顶堆)和最小堆(小根堆/小顶堆),通常用完全二叉树实现,完全二叉树又可以用数组实现,故堆通常以数组形式的存储,而非二叉树的链式存储。常见的堆有二叉堆、裴波那契 ...

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

Jun 15, 2022
日常

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

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

Jun 13, 2022
算法

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

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

Jun 10, 2022
算法

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

常用算法 — 双指针 [ Doc ]

Jun 6, 2022
算法

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


©殷东亮 2012 - 2022