算法 | 代码随想录

代码随想录10:贪心算法

什么是贪心算法 贪心的本质是选择每一阶段的局部最优,从而达到全局最优。 贪心的解题步骤 将问题分解为若干子问题 找出适合的贪心策略 求解每一个子问题的最优解 将局部最优解堆叠成全局最优解 分发饼干 假...
阅读全文
算法 | 代码随想录

代码随想录09:回溯算法

什么是回溯法? 回溯法:回溯搜索法,是一种搜索方法,回溯是递归的副产品,只要有递归就会有回溯。 回溯的本质是穷举,穷举所有可能,然后选出我们想要的答案 回溯法解决的问题 组合问题:N个数里面按一定规则...
阅读全文
算法 | 代码随想录

代码随想录08:二叉树

理论基础 种类: 满二叉树 完全二叉树 二叉搜索树 平衡二叉搜索树 存储: 链式存储(指针) 顺序存储(数组) 遍历方式: 深度优先遍历(DFS) 前序遍历(中左右) 中序遍历(左中右) 后续遍历(左...
阅读全文
算法 | 代码随想录

代码随想录06:双指针法

双指针法在数组、链表的操作中是非常常见的,很多考察数组、链表、字符串等操作的面试题都会使用双指针法。 常见的题目类型: 移除元素 反转字符串 替换空格 反转字符串中的单词 反转链表 删除链表中倒数第N...
阅读全文
算法 | 代码随想录

代码随想录03:链表

理论基础 单链表:一个数据域 + 一个指针域(指向下个节点),最后一个节点指向空。 双链表:一个数据域 + 两个指针域(一个指向上个节点,一个指向下个节点)。 循环链表:链表首位相连。 链表定义 st...
阅读全文
算法 | 代码随想录

代码随想录02:数组

理论基础 数组是存放在连续内存空间上的相同类型数据的集合。 数组下标从0开始。 数组内存空间的地址是连续的。 二分查找 问题:给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 tar...
阅读全文