关键字一句话描述算法步骤分治算法基本都可以用递归实现,分治,递归,栈,深度优先搜索,这些思想和方法往往联系在一起关键字过程,返回值一句话描述将大问题拆成更小问题,更小问题又可以继续拆解,最后直到递归出口算法步骤觉得可以用递归解决的算法题怎么写呢?
原创
2021-07-07 11:03:53
484阅读
文章目录关键字一句话描述算法步骤分治算法基本都可以用递归实现,分治,递归,栈,深度优先搜索,这些思想和方法往往联系在一起关键字过程,返回值一句话描述将大问题拆成更小问题,更小问题又可以继续拆解,最后直到递归出口算法步骤觉得可以用递归解决的算法题怎么写呢?分为下面几个步骤:1.发现题目满足分治的思想首先发现题目要求解 n 很大时候的函数值,可以这个问题拆成更小的问题,在不断的拆...
原创
2022-01-06 14:00:22
225阅读
可以在 O(n) 的时间复杂度 O(1) 的空间复杂度完成答题题型对于线性表类型的题目,如果要求中间某个特定位置的结点值,我们就可以用到快慢指针关键字要求线性表中某个结点的结点值解题步骤若题型符合快慢指针的题型1.设置快指针有多快快指针比慢指针快多少?这要看题目的条件,比方说如果题目要求链表最中间的结点值,我们可以设置快指针每次移动速度...
原创
2021-07-07 11:02:37
486阅读
文章目录题型关键字解题步骤使用快慢指针,可以在 O(n) 的时间复杂度 O(1) 的空间复杂度完成答题题型对于线性表类型的题目,如果要求中间某个特定位置的结点值,我们就可以用到快慢指针关键字要求线性表中某个结点的结点值解题步骤若题型符合快慢指针的题型1.设置快指针有多快快指针比慢指针快多少?这要看题目的条件,比方说如果题目要求链表最中间的结点值,我们可以设置快指针每次移动速度...
原创
2022-01-06 13:48:58
212阅读
,已知该线性表具有某种顺序,我们需要对该线性表做某种规定的变换,或者找到该线性表中觉有某种特殊性质的结点,我们就可以使用双指针来解决,其中某种规定的变换或者特殊性质的结点,这个规定和特殊性质决定着双指针的移动距离。我们常见的双指针,比如快慢指针,头尾设立指针,二分查找等关键词
原创
2021-07-07 10:55:35
302阅读
文章目录题型关键词算法步骤题型对于线性表类型的题目,已知该线性表具有某种顺序,我们需要对该线性表做某种规定的变换,或者找到该线性表中觉有某种特殊性质的结点,我们就可以使用双指针来解决,其中某种规定的变换或者特殊性质的结点,这个规定和特殊性质决定着双指针的移动距离。我们常见的双指针,比如快慢指针,头尾设立指针,二分查找等关键词有序线性表算法步骤1.设立头尾指针头尾设置指针分别指向...
原创
2022-01-06 14:00:22
198阅读
关键字解题步骤单调队列是在单调栈上的拓展,单调队列中元素单调,。注意与优先级队列进行区分。单调队列的性质:寻找最大最小值时间复杂度小于 O(n),可以起到优化作用单调队列初始时没有元素需要添加元素,以后每次变动队列不可能存在空的情况,只有在初始化队列中第一个元素时候为空单调队列首位变动,中间元素不变动题型一个序列只有头尾的数据有变动,需要求该序列的最大值或最小值,
原创
2021-07-07 11:02:10
592阅读
文章目录题型关键字解题步骤单调队列是在单调栈上的拓展,单调队列中元素单调,。注意与优先级队列进行区分。单调队列的性质:寻找最大最小值时间复杂度小于 O(n),可以起到优化作用单调队列初始时没有元素需要添加元素,以后每次变动队列不可能存在空的情况,只有在初始化队列中第一个元素时候为空单调队列首位变动,中间元素不变动题型一个序列只有头尾的数据有变动,需要求该序列的最大值或最小值,可以...
原创
2022-01-06 13:48:58
141阅读
二分查找 class Solution(object): def search(self, nums, target): """ :type nums: List[int] :type target: int :rtype: int """ left, right = 0, len(nums)-1
文章目录题型常考点题型leetcode 中字符串相关的题目主要涉及字符的移动变换等问题,其中可以用多种不同的算法来解决。由于字符串类型的题目解决思路也是零零碎碎的,所以下面我统计了一下非常常见的一些解题策略常考点统计字符串中每种字符的个数,可以用 hash 表来做,常见的如下int[] arr = new int[26];这种做法,让小写字母减去 97 作为数组的下标,出现的次数...
原创
2022-01-06 13:57:23
102阅读
leetcode 中字符串相关的题目主要涉及字符的移动变换等问题,其中可以用多种不同的算法来解决。由于字符串类型的题目解决思路也是零零碎碎的,所以下面我统计了一下非常常见的一些解题策略常考点统计字符串中每种字符的个数,可以用 hash 表来做
原创
2021-07-07 10:56:15
1174阅读
文章目录题型常考点题型栈的题型比较多种多样,和链表一样比较杂,一般场景是只在一端进行压入或者弹出操作的题型就可以使用栈的数据结构,难点是识别这样的场景常考点括号匹配像括号匹配这种最经典的栈的题型求栈的最小值往往用一个辅助栈存储当前数据栈的最小值栈底出栈利用一个临时栈,把原来数据栈数据导入到临时栈中,这样临时栈的栈顶就是数据栈的栈底了...
原创
2022-01-06 13:48:58
79阅读
常考点题型栈的题型比较多种多样,和链表一样比较杂,一般场景是只在一端进行压入或者弹出操作的题型就可以使用栈的数据结构,难点是识别这样的场景常考点括号匹配像括号匹配这种最经典的栈的题型求栈的最小值往往用一个辅助栈存储当前数据栈的最小值栈底出栈利用一个临时栈,把原来数据栈数据导入到临时栈中,这样临时栈的栈顶就是数据栈的栈底了...
原创
2021-07-07 11:01:43
73阅读
一个基本有序的序列,需要找到其中一个与其他元素不同具有某种特殊特性的元素时间复杂度 O(logn)关键词有序,要寻找的值具有某种特殊性质算法步骤先写初始 left 和 right 值先找到 left 和 right 指向什么值编写二分循环中的条件语句编写循环体,循环中编写 if else 条件,条件就是满足要查找的元素特殊的性质
原创
2021-07-07 10:58:44
334阅读
题型技能点掌握题型题型各类各样,比较灵活,不太好归纳为一种题型技能点掌握写链表的题需要熟练掌握以下几点链表结点插入删除操作可以非常灵活熟练的写出来头插法和尾插法可以非常灵活熟练的写出来对集合类的常用操作比较熟悉...
原创
2021-07-07 11:03:30
285阅读
文章目录题型技能点掌握题型题型各类各样,比较灵活,不太好归纳为一种题型技能点掌握写链表的题需要熟练掌握以下几点链表结点插入删除操作可以非常灵活熟练的写出来头插法和尾插法可以非常灵活熟练的写出来对集合类的常用操作比较熟悉...
原创
2022-01-06 13:48:58
217阅读
文章目录题型关键词算法步骤题型一个基本有序的序列,需要找到其中一个与其他元素不同具有某种特殊特性的元素时间复杂度 O(logn)关键词有序,要寻找的值具有某种特殊性质算法步骤先写初始 left 和 right 值先找到 left 和 right 指向什么值编写二分循环中的条件语句编写循环体,循环中编写 if else 条件,条件就是满足要查找的元素特殊的性质循环结...
原创
2022-01-06 13:48:59
122阅读
文章目录前言题型关键词算法步骤前言在我们做二叉树的基础算法题目的时候一定需要异常熟练的掌握以下知识点,这样写二叉树的题目才能游刃有余写二叉树前必须非常熟练的掌握如下:先中后序遍历递归与非递归二叉树的先中后序遍历的递归与非递归写法,必须非常熟练的写,并且非递归写法有常见的两种写法(一种是严蔚敏版的一种是先存入一个结点到栈中,然后每次循环把该结点在直接孩子结点全部入栈)
原创
2021-07-07 10:55:12
232阅读
文章目录前言题型关键词算法步骤前言在我们做二叉树的基础算法题目的时候一定需要异常熟练的掌握以下知识点,这样写二叉树的题目才能游刃有余写二叉树前必须非常熟练的掌握如下:先中后序遍历递归与非递归二叉树的先中后序遍历的递归与非递归写法,必须非常熟练的写,并且非递归写法有常见的两种写法(一种是严蔚敏版的一种是先存入一个结点到栈中,然后每次循环把该结点在直接孩子结点全部入栈),必须非常熟练的掌握层次遍历的队列写法二叉树的层次遍历的写法(用队列实现),必须非常熟练的写,并且要非常熟练的写两种,一种
原创
2022-01-06 13:48:55
184阅读
SAMSAMSAM题型总结前言:菜死了,菜死了。1.求本质不同的子串个数。法1:考虑拓扑排序后dpdpdp,因为SAMSAMSAM上从任意点到任意点都是原串的子串。所以令dp[i]dp[i]dp[i]表示从第iii个状态出发的本质不同子串数,然后根据边转移即可。for(int i=1;i<=cnt;i++) b[len[i]]++; for(int i=1;i<=cnt;i++) b[i]+=b[i-1]; for(int i=1;i<=cnt;i++) a[b[len[
原创
2022-01-21 11:22:33
114阅读