
算法分类刷
文章平均质量分 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 · 206 阅读 · 0 评论 -
并查集(Union Find)
视频:https://www.bilibili.com/video/BV1Q5411H7v5?from=search&seid=6194289447666547054Union(x,y)FInd(x)要使用数组去实现:模板:优化:优化1:quick find优化2:基于权重练习:200.岛屿数量:https://leetcode-cn.com/problems/number-of-...原创 2021-08-05 10:02:42 · 150 阅读 · 0 评论 -
链表
链表是一种通过指针串联在一起的线性结构,每一个节点是又两部分组成,一个是数据域一个是指针域(存放指向下一个节点的指针),最后一个节点的指针域指向null(空指针的意思)。单链表双链表循环链表循环链表可以用来解决约瑟夫环问题。链表和数组的区别:题目:203.移除链表元素https://leetcode-cn.com/problems/remove-linked-list-elements/707.设计链表https://leetcode-cn.c...原创 2021-07-19 17:41:09 · 145 阅读 · 0 评论 -
字符串
344.反转字符串https://leetcode-cn.com/problems/reverse-string/541. 反转字符串IIhttps://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 · 146 阅读 · 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 · 143 阅读 · 1 评论 -
动态规划
对于⾯试的话,其实掌握01背包,和完全背包,就够⽤了,最多可以再来⼀个多重背包在讲解背包问题的时候,都是围绕着动态五部曲进⾏讲解,把这五部都搞透才算是对动规理解深⼊了。动态五部曲如下: 1. 确定dp数组(dp table)以及下标的含义 2. 确定递推公式 3. dp数组如何初始化 4. 确定遍历顺序 5. 举例推导dp数组...原创 2021-06-07 11:37:07 · 490 阅读 · 0 评论 -
二叉树
⼆叉树专题精讲1.⼆叉树的种类 在我们解题过程中⼆叉树有两种主要的形式:满⼆叉树和完全⼆叉树。 满⼆叉树:如果⼀棵⼆叉树只有度为0的结点和度为2的结点,并且度为0的结点在同⼀层上,则这棵⼆叉树为满⼆叉树。完全⼆叉树 :在完全⼆叉树中,除了最底层节点可能没填满外,其余每层节点数都达到最⼤值,并且最下⾯⼀层的节点都集中在该层最左边的若⼲位置。若最底层为第 h 层,则该层包含 1~ 2^h -1 个节点。 ⼆叉搜索树 :前⾯介绍的...原创 2021-05-26 21:35:22 · 362 阅读 · 0 评论 -
回溯算法
1.什么是回溯法 ?回溯法也可以叫做回溯搜索法,它是⼀种搜索的⽅式。回溯是递归的副产品,只要有递归就会有回溯。所以以下讲解中,回溯函数也就是递归函数,指的都是⼀个函数。2.回溯法的效率 :回溯法并不是什么⾼效的算法。因为回溯的本质是穷举,穷举所有可能,然后选出我们想要的答案,如果想让回溯法⾼效⼀些,可以加⼀些剪枝的操作,但也改不了回溯法就是穷举的本质。那么既然回溯法并不⾼效为什么还要⽤它呢?因为没得选,⼀些问题能暴⼒搜出来就不错了,撑死了再剪枝⼀下,还没有更⾼效的解法。3.回溯...原创 2021-05-17 10:00:20 · 1007 阅读 · 0 评论 -
贪心算法
通过局部最优,推出整体最优那么如何能看出局部最优是否能推出整体最优呢?有没有什么固定策略或者套路呢?不好意思了,贪⼼没有套路,说⽩了就是常识性推导加上举反例靠⾃⼰⼿动模拟,如果模拟可⾏,就可以试⼀试贪⼼策略,如果不可⾏,可能需要动态规划。有同学问了如何验证可不可以⽤贪⼼算法呢?最好⽤的策略就是举反例,如果想不到反例,那么就试⼀试贪⼼吧。贪⼼算法⼀般分为如下四步:将问题分解为若⼲个⼦问题 找出适合的贪⼼策略 求解每⼀个⼦问题的最优解 将局部最优解堆叠成全局最优解其实这个分的.原创 2021-05-12 16:17:00 · 142 阅读 · 0 评论