算法分类刷
文章平均质量分 65
天才小熊猫啊
路漫漫其修远兮,吾将上下而求索!!!
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
拓扑排序
207. 课程表 https://leetcode-cn.com/problems/course-schedule/submissions/ 题意解释 一共有 n 门课要上,编号为 0 ~ n-1。 先决条件[1, 0],意思是必须先上课 0,才能上课 1。 给你 n 、和一个先决条件表,请你判断能否完成所有课程。 再举个生活的例子 先穿内裤再穿裤子,先穿打底再穿外套,先穿衣服再戴帽子,是约定俗成的。 内裤外穿、光着身子戴帽子等,都会有点奇怪。 我们遵循穿衣的一条条先后规则,用一串顺序行为,原创 2021-08-06 16:41:44 · 280 阅读 · 0 评论 -
并查集(Union Find)
视频: https://www.bilibili.com/video/BV1Q5411H7v5?from=search&seid=6194289447666547054 Union(x,y) FInd(x) 要使用数组去实现: 模板: 优化: 优化1:quick find 优化2:基于权重 练习: 200.岛屿数量: https://leetcode-cn.com/problems/number-of-...原创 2021-08-05 10:02:42 · 205 阅读 · 0 评论 -
链表
链表是一种通过指针串联在一起的线性结构,每一个节点是又两部分组成,一个是数据域一个是指针域(存放指向下一个节点的指针),最后一个节点的指针域指向null(空指针的意思)。 单链表 双链表 循环链表 循环链表可以用来解决约瑟夫环问题。 链表和数组的区别: 题目: 203.移除链表元素 https://leetcode-cn.com/problems/remove-linked-list-elements/ 707.设计链表 https://leetcode-cn.c...原创 2021-07-19 17:41:09 · 202 阅读 · 0 评论 -
字符串
344.反转字符串 https://leetcode-cn.com/problems/reverse-string/ 541. 反转字符串II https://leetcode-cn.com/problems/reverse-string-ii/ 剑指Offer 05.替换空格 https://leetcode-cn.com/problems/ti-huan-kong-ge-lcof/ 151.翻转字符串里的单词 https://leetcode-cn.com/problems/reverse原创 2021-07-08 17:40:56 · 208 阅读 · 0 评论 -
数组
数组理论基础 数组是存放在连续内存空间上的相同类型数据的集合 下标从0开始 题目: 704. 二分查找 题目链接:https://leetcode-cn.com/problems/binary-search/ 使用二分法的前提条件:有序+无重复元素 模板:左闭右闭区间 //重写版 左闭右闭 class Solution { public int search(int[] nums, int target) { int left = 0,right = nums.len原创 2021-06-15 17:45:57 · 210 阅读 · 1 评论 -
动态规划
对于⾯试的话,其实掌握01背包,和完全背包,就够⽤了,最多可以再来⼀个多重背包 在讲解背包问题的时候,都是围绕着动态五部曲进⾏讲解,把这五部都搞透才算是对动规理解深⼊了。 动态五部曲如下: 1. 确定dp数组(dp table)以及下标的含义 2. 确定递推公式 3. dp数组如何初始化 4. 确定遍历顺序 5. 举例推导dp数组 ...原创 2021-06-07 11:37:07 · 627 阅读 · 0 评论 -
二叉树
⼆叉树专题精讲 1.⼆叉树的种类 在我们解题过程中⼆叉树有两种主要的形式:满⼆叉树和完全⼆叉树。 满⼆叉树:如果⼀棵⼆叉树只有度为0的结点和度为2的结点,并且度为0的结点在同⼀层上,则这棵⼆叉树为满⼆叉树。 完全⼆叉树 :在完全⼆叉树中,除了最底层节点可能没填满外,其余每层节点数都达到最⼤值,并且最下⾯⼀层的节点都集中在该层最左边的若⼲位置。若最底层为第 h 层,则该层包含 1~ 2^h -1 个节点。 ⼆叉搜索树 :前⾯介绍的...原创 2021-05-26 21:35:22 · 443 阅读 · 0 评论 -
回溯算法
1.什么是回溯法 ? 回溯法也可以叫做回溯搜索法,它是⼀种搜索的⽅式。 回溯是递归的副产品,只要有递归就会有回溯。 所以以下讲解中,回溯函数也就是递归函数,指的都是⼀个函数。 2.回溯法的效率 : 回溯法并不是什么⾼效的算法。因为回溯的本质是穷举,穷举所有可能,然后选出我们想要的答案,如果想让回溯法⾼效⼀些,可以加⼀些剪枝的操作,但也改不了回溯法就是穷举的本质。 那么既然回溯法并不⾼效为什么还要⽤它呢? 因为没得选,⼀些问题能暴⼒搜出来就不错了,撑死了再剪枝⼀下,还没有更⾼效的解法。 3.回溯...原创 2021-05-17 10:00:20 · 1132 阅读 · 0 评论 -
贪心算法
通过局部最优,推出整体最优 那么如何能看出局部最优是否能推出整体最优呢?有没有什么固定策略或者套路呢? 不好意思了,贪⼼没有套路,说⽩了就是常识性推导加上举反例靠⾃⼰⼿动模拟,如果模拟可⾏,就可以试⼀试贪⼼策略,如果不可⾏,可能需要动态规划。 有同学问了如何验证可不可以⽤贪⼼算法呢? 最好⽤的策略就是举反例,如果想不到反例,那么就试⼀试贪⼼吧。 贪⼼算法⼀般分为如下四步: 将问题分解为若⼲个⼦问题 找出适合的贪⼼策略 求解每⼀个⼦问题的最优解 将局部最优解堆叠成全局最优解 其实这个分的.原创 2021-05-12 16:17:00 · 191 阅读 · 0 评论
分享