![](https://img-blog.csdnimg.cn/direct/5c0f4dbaca39464d8ca85df7405670ed.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
算法指南
文章平均质量分 95
本专栏记录给大厂相关最常见的一些算法解析:优选算法、回溯算法、dp算法、贪心算法等等。
独享你的盛夏
非科班大二在读,阿里云博客专家,致力于C/C++后端研发。乐于分享成长过程中的芝麻,欢迎相互交流。
展开
-
算法沉淀 —— 动态规划(子序列问题(上))
几乎所有的动态规划问题大致可分为以下5个步骤,后续所有问题分析都将基于此1.、状态表示:通常状态表示分为以下两种,其中更是第一种为主。以i为结尾,dp[i] 表示什么,通常为代求问题(具体依题目而定)以i为开始,dp[i]表示什么,通常为代求问题(具体依题目而定)2、状态转移方程以上述的dp[i]意义为根据, 通过最近一步来分析和划分问题,由此来得到一个有关dp[i]的状态转移方程。3、dp表创建,初始化动态规划问题中,如果直接使用状态转移方程通常会伴随着越界访问等风险,所以一般需要初始化。原创 2024-04-04 18:17:18 · 1288 阅读 · 40 评论 -
算法沉淀——动态规划篇(子数组系列问题(下))
几乎所有的动态规划问题大致可分为以下5个步骤,后续所有问题分析都将基于此1.、状态表示:通常状态表示分为以下两种,其中更是第一种为主。以i为结尾,dp[i] 表示什么,通常为代求问题(具体依题目而定)以i为开始,dp[i]表示什么,通常为代求问题(具体依题目而定)2、状态转移方程以上述的dp[i]意义为根据, 通过最近一步来分析和划分问题,由此来得到一个有关dp[i]的状态转移方程。3、dp表创建,初始化动态规划问题中,如果直接使用状态转移方程通常会伴随着越界访问等风险,所以一般需要初始化。原创 2024-04-04 18:16:50 · 1398 阅读 · 32 评论 -
算法沉淀 —— 动态规划篇(简单多状态dp问题上)
力扣:面试题 17.16. 按摩师、LCR 090. 打家劫舍 II、740. 删除并获得点数、LCR 091. 粉刷房子原创 2024-04-02 23:31:09 · 998 阅读 · 5 评论 -
算法沉淀 —— 深度搜索(dfs)
leetcode:2331. 计算布尔二叉树的值、129. 求根节点到叶节点数字之和、814. 二叉树剪枝、98. 验证二叉搜索树、230. 二叉搜索树中第K小的元素原创 2024-04-01 16:14:07 · 1550 阅读 · 29 评论 -
递归究竟是什么?如何快速编写正确的递归代码? —— 力扣经典面试题详解
归是一种算法设计技术,它允许一个函数在其定义或说明中有直接或间接调用自身的方法。递归在数学和计算机科学中有着广泛的应用,它通过将复杂问题分解为规模较小、形式相同的子问题来求解。递归的基本原理包括:每一级的函数调用都有自己的变量;每一次函数调用都会有一次返回;递归函数中,位于递归调用前的语句和各级被调用函数具有相同的执行顺序;递归函数中,位于递归调用后的语句的执行顺序和各个被调用函数的顺序相反;虽然每一级递归都有自己的变量,但是函数代码并不会得到复制。原创 2024-04-01 16:12:10 · 1376 阅读 · 46 评论 -
算法沉淀 —— 动态规划篇(简单多状态dp问题下)
几乎所有的动态规划问题大致可分为以下5个步骤,后续所有问题分析都将基于此1.、状态表示:通常状态表示分为以下两种,其中更是第一种为主。以i为结尾,dp[i] 表示什么,通常为代求问题(具体依题目而定)以i为开始,dp[i]表示什么,通常为代求问题(具体依题目而定)2、状态转移方程*以上述的dp[i]意义为更具, 通过最近一步来分析和划分问题,由此来得到一个有关dp[i]的状态转移方程。3、dp表创建,初始化动态规划问题中,如果直接使用状态转移方程通常会伴随着越界访问等风险,所以一般需要初始化。原创 2024-03-31 18:18:12 · 1318 阅读 · 32 评论 -
算法沉淀——动态规划篇(子数组系列问题(上))
几乎所有的动态规划问题大致可分为以下5个步骤,后续所有问题分析都将基于此1.、状态表示:通常状态表示分为以下两种,其中更是第一种为主。以i为结尾,dp[i] 表示什么,通常为代求问题(具体依题目而定)以i为开始,dp[i]表示什么,通常为代求问题(具体依题目而定)2、状态转移方程*以上述的dp[i]意义为更具, 通过最近一步来分析和划分问题,由此来得到一个有关dp[i]的状态转移方程。3、dp表创建,初始化动态规划问题中,如果直接使用状态转移方程通常会伴随着越界访问等风险,所以一般需要初始化。原创 2024-03-30 19:57:16 · 1041 阅读 · 1 评论 -
算法沉淀 —— 动态规划篇(路径问题)
几乎所有的动态规划问题大致可分为以下5个步骤,后续所有问题分析都将基于此1.、状态表示:通常状态表示分为以下两种,其中更是第一种为主。以i为结尾,dp[i] 表示什么,通常为代求问题(具体依题目而定)以i为开始,dp[i]表示什么,通常为代求问题(具体依题目而定)2、状态转移方程*以上述的dp[i]意义为根据, 通过最近一步来分析和划分问题,由此来得到一个有关dp[i]的状态转移方程。3、dp表创建,初始化动态规划问题中,如果直接使用状态转移方程通常会伴随着越界访问等风险,所以一般需要初始化。原创 2024-03-26 18:08:22 · 1817 阅读 · 21 评论 -
算法沉淀 —— 动态规划篇(斐波那契数列模型)
几乎所有的动态规划问题大致可分为以下5个步骤,后续所有问题分析都将基于此1.、状态表示:通常状态表示分为以下两种,其中更是第一种为主。以i为结尾,dp[i] 表示什么,通常为代求问题(具体依题目而定)以i为开始,dp[i]表示什么,通常为代求问题(具体依题目而定)2、状态转移方程*以上述的dp[i]意义为更具, 通过最近一步来分析和划分问题,由此来得到一个有关dp[i]的状态转移方程。3、dp表创建,初始化动态规划问题中,如果直接使用状态转移方程通常会伴随着越界访问等风险,所以一般需要初始化。原创 2024-03-25 06:29:04 · 1666 阅读 · 25 评论 -
八大常见位运算总结(非常经典,建议收藏)
1 基础位运算2 确定一个数(x)的二进制第x位是1还是03 将一个数(num)二进制的第n位修改成14、将一个数(num)二进制的第n位修改成05、 位图思想6、 提取一个数(num)二进制表示中最右边的1(lowbit)7、 删除一个数(num)二进制表示中最右边的18、异或(^)运算的运算律原创 2023-12-28 19:17:39 · 2510 阅读 · 48 评论 -
二分查找及模板深度解析:right <= left 还是 right < left ? mid=left+(right-left)/2还是mid=left+(right-left +1 )/2 ?
下面博主会给出一道经典面试题进行分析,在最后会给出二分查找模板!!!博主将基于力扣“34. 在排序数组中查找元素的第一个和最后一个位置”,深度剖析right原创 2023-12-17 17:29:28 · 2118 阅读 · 59 评论 -
大厂算法指南:优选算法 ——双指针篇(下)
前言:双指针简介leetcode:[611. 有效三角形的个数]、[LCR 179. 查找总价格为目标值的两个商品]、[15. 三数之和]、[18. 四数之和]原创 2023-12-11 06:15:00 · 921 阅读 · 2 评论 -
大厂算法指南:优选算法 ——双指针篇(上)
前言:双指针简介leetcode: 283.移动零、1089. 复写零、202. 快乐数、11. 盛最多水的容器原创 2023-12-11 06:15:00 · 1819 阅读 · 21 评论