代码编织梦想

回文子串的数量[寻找回文子串的完整思路过程]-爱代码爱编程

寻找回文子串的完整思路过程 前言一、回文串的数量二、动态规划1、完整思考过程2、go 总结参考文献 前言 回文字符串,就是从左遍历和从右遍历的字符是相同顺序的,转换一下,就是该字符串是对称的。

含重复元素取不重复子集[如何取子集?如何去重?]_如何把一个带重复元素的集合拆分成多个不带重复的小集合?-爱代码爱编程

含重复元素取不重复子集 前言一、子集II二、取子集+去重总结参考文献 前言 发现关键问题是一个人的核心能力,就比如含重复元素取不重复子集,两个关键问题就是,第一,如何取子集?第二,如何去重? 针对如

根据字符出现频率排序 [尽量使用数组来实现 栈 / hash]_hash_sort 字母排序-爱代码爱编程

数组模拟hash 前言一、根据字符出现频率排序二、hash记录+优先队列排序+stringbuilder串联字符1、hashMap版2、数组hash版 总结参考文献 前言 尽量用数组模拟栈 /

划分字母区间[贪心-爱代码爱编程

贪心 前言一、划分字母区间二、贪心&hash数组总结参考文献 前言 贪心是一个很考察分析能力的题型之一,第一步需要分析到贪心点,第二步需要利用已知数据结构来完成构建代码,当如果不能直接解决,

斐波拉契数列的快速幂的递归和迭代版本_斐波拉奇 迭代-爱代码爱编程

斐波拉契数列的快速幂和迭代版本 前言一、递归二、迭代总结 前言 斐波拉契数列的递推公式为f(n) = f(n - 1) + f(n - 2),如果只是求f(n),可以通过dfs模拟,动态规划,快速幂

java.integer.bitcount(int)源码解析-爱代码爱编程

bitCount 前言一、由易到难,头脑热身二、简单优化,一题多解三、分治优化四、bitCount(int)源码优化总结参考文献 前言 如何求解一个二进制中1的个数?有常规的O(N)法,还有基于分治

lru缓存[线性表 -爱代码爱编程

LRU缓存 前言一、LRU缓存二、问题分析1、记忆点2、 问题分析3、其他注意细节 三、源码总结参考文献 前言 对于LRU缓存, 记忆点:hash + 双向链表; 逻辑点:线性表 ->

去除重复字母[贪心+单调栈(用数组+len来维持单调序列)]_贪心算法c语言例题去重字母-爱代码爱编程

贪心+单调栈 前言一、去除重复字母二、贪心+单调栈1、stack2、原生数组+len替代stack3、golang版 总结参考文献 前言 当设计到最字问题时,多半涉及了贪心算法,这种情况,要自

优质数对的数目[位运算特点+抽象能力考察+分组快速统计]_统计公平数对的数目-爱代码爱编程

位运算特点+抽象能力考察+分组快速统计 前言一、优质数对的数目二、思路与优化过程总结参考文献 前言 位运算是计算机最基本的计算,是最快的运算方式,与或非各有特点;抽象能力考察我理解成一种 拿核心去累

从根到叶的二进制数之和[只管递归无需判断是否为叶子节点]-爱代码爱编程

从根到叶的二进制数之和 前言一、从根到叶的二进制数之和二、操作叶子节点1、不修改树节点2、修改树节点值3、树结构 总结参考文献 前言 记录一个以前的困惑,以前需要操作二叉树操作叶子节点的时候,

打家劫舍iii[后序遍历与回溯+动态规划]_打家劫舍3-爱代码爱编程

回溯联合动态规划 前言一、打家劫舍III二、回溯+动态规划总结参考文献 前言 对于树问题,存在 前序与DFS/中序与平衡二叉树/后序与回溯/层序与BFS。对于打家劫舍,是一道经典的动态规划问题,当线

最大人工岛[如何让一个连通分量的所有节点都记录总节点数?+给连通分量编号]_最大人工岛2 java-爱代码爱编程

dfs与连通分量 前言一、最大人工岛二、DFS+记搜变体总结参考文献 前言 如何求连通分量总的所有节点数?dfs+visited 如何给连通分量的所有节点都能记录该连通分量的节点总数?将变量改为数组

寻找旋转排序数组中的最小值 ii[经典抽象二分 + 如何破局左中右三者相等]-爱代码爱编程

经典抽象二分+如何破局左中右三者相等 前言一、寻找旋转排序数组中的最小值 II二、经典抽象二分总结参考文献 前言 这个题是我做过非常经典的抽象二分,不仅判定规则被抽象,而且还会出现判定规则“失灵”现

使数组按非递减顺序排序[问题转换 + dp + 单调栈]_数组移动成非降序-爱代码爱编程

问题转换 + dp + 单调栈 前言一、使数组按非递减顺序排序二、单调栈+问题转换1、思路版2、简洁版 总结参考文献 前言 递减、递增和单调栈紧密相关,单调栈是单调问题的基础。该题可练习预先的

二叉树的序列化与反序列化[前序遍历+回溯]_将函数deserializee()补充完整,实现对二叉树前序反序列化。为了验证结果正确性,输-爱代码爱编程

前序遍历+回溯 前言一、二叉树的序列化与反序列化二、前序遍历 & 回溯生成树总结参考文献 前言 对于树的序列化和反序列化,用什么遍历序列化,就用什么遍历把其还原出来,本文记录前序遍历序列化,

最长回文串[hash赋能 + 常见的hash数组 + hash压缩路径]_hash路径-爱代码爱编程

前言 hash记录可达O(1)的访问速度,所以其是降低时间复杂度的好方法。但是hash的空间该如何降到最低呐?hash数组当仁不让。除此之外,如果hash数组只记录0或1时,可以用n位二进制来代替,这样hash得到了再一次

坐上公交车的最晚时间[贪心练习+时间类问题]_力扣做上公交车最晚时间-爱代码爱编程

贪心--时间流问题 前言一、坐上公交车的最晚时间二、贪心总结参考文献 前言 对于贪心的时间相关的问题,一般可以以时间为基线,即一天天的循环。中间配合队列/优先队列来处理。 一、坐上公交车的最晚时间

最长摆动序列[贪心练习]_最长摆动子序列贪心算法-爱代码爱编程

贪心练习 前言一、最长摆动序列二、贪心算法1、贪心需要满足的条件2、思路分析3、code 总结参考文献 前言 贪心/动态规划/单调栈,都是考察逻辑能力的一类高级题目,这些题需要分析,需要较好的

最大子矩阵和[前缀和-爱代码爱编程

最大子矩阵和 前言一、最大子矩阵和二、二维前缀和+双指针总结参考文献 前言 预处理–前缀和,为解题赋能。计算区间由O(n) ->O(1);双指针滑动窗口+变量记录想要的解。 一、最大子矩阵和

最小差值平方和[贪心练习 -爱代码爱编程

贪心练习 -> 基本贪心到优化贪心 前言一、最小差值平方和二、贪心 -> 贪心优化1、基本贪心2、贪心优化 总结参考文献 前言 对贪心的练习,是对逻辑分析考察的一个好方式。考察 脑