自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(99)
  • 资源 (29)
  • 收藏
  • 关注

原创 739. 每日温度 (单调栈)

通常是一维数组,要寻找任一个元素的右边或者左边第一个比自己大或者小的元素的位置,可以用单调栈。

2023-01-30 13:14:33 178

原创 组合(77+ 39 + 40 + 17) + 排列(46 + 47) + 子集(78) + 分割(131 + 93)

集合中没有重复的元素,元素只能使用一次。解集不能包含重复的组合。

2023-01-25 19:11:40 236

原创 回文子串系列

回文串是一个正读和反读都一样的字符串(abccba)。一般有两种方法,中心扩展法和动态规划。主要介绍动态规划。

2023-01-15 12:44:03 205

原创 打家劫舍问题

对于环形就是相当于第一个和最后一个房屋不可以同时偷,那么分两种情况,注意需要转换到偷的上面。不偷第一个,相当于偷第2个到偷第n个。不偷第n个,相当于偷第1个到偷第n-1个。取这两种情况的最大。

2023-01-07 12:09:50 185

原创 139. 单词拆分 javaScript实现

【代码】139. 单词拆分 javaScript实现。

2023-01-05 19:39:50 158

原创 背包问题:01背包+完全背包+有关题目

使用二维数组 dp[i] [j] 表示从下标为[0-i]的物品里任意取,放进容量为j的背包,价值总和最大是多少。确定递推公式dp数组的初始化首先从dp[i][j] 的定义出发,如果背包容量j为0的话,即dp [i] [0] ,无论是选取哪些物品,背包价值总和一定为0。如图:状态转移方程 dp[i][j] = max(dp[i - 1][j], dp[i - 1][j - weight[i]] + value[i]);可以看出i 是由 i-1 推导出来,那么i为0的时候就一定要初始化。

2022-12-15 19:22:26 545

原创 96. 不同的二叉搜索树 JavaScript实现

即 dp[i] += dp[以j为头结点左子树节点数量] * dp[以j为头结点右子树节点数量]。j 相当于是头结点的元素,从1遍历到i为止。所以递推公式:dp[i] += dp[j - 1] * dp[i - j];,j-1 为j为头结点左子树节点数量,i-j 为以j为头结点右子树节点数量。首先一定是遍历节点数,从递归公式:dp[i] += dp[j - 1] * dp[i - j]可以看出,节点数为i的状态是依靠 i之前节点数的状态。那么遍历i里面每一个数作为头结点的状态,用j来遍历。

2022-12-13 19:55:25 65

原创 不同路径问题: 62. 不同路径 + 63. 不同路径 II

【代码】不同路径问题。

2022-12-13 17:13:56 178

原创 最近公共祖先问题

这题让求二叉搜索树的最近公共祖先,而二叉搜索树的特点就是 左子树的所有节点都小于当前节点,右子树的所有节点都大于当前节点,并且每棵子树都具有上述特点,所以这题就好办了,从更节点开始遍历。这个题目可以用上面的揭发,也可以用更加简单的方法。

2022-12-01 11:31:43 88

原创 二叉树路径问题+递归+有关题目

顾名思义,就是从某一个节点(不一定是根节点),从上向下寻找路径,到某一个节点(不一定是叶节点)结束,具体题目如下:而继续细分的话还可以分成一般路径与给定和的路径。

2022-11-24 14:23:57 329

原创 347. 前 K 个高频元素 JavaScript实现

先用哈希表Map统计每个数据的个数,然后进行排序操作。重要的是排序操作,如果要求是优于O(nlogn),则可供选择的只有堆排序和同排序。

2022-11-06 20:33:40 239

原创 150. 逆波兰表达式求值 JavaScript实现

思想:判断是操作数还是运算符,可以自己写函数判断。

2022-11-06 15:56:41 200

原创 1047. 删除字符串中的所有相邻重复项 JavaScript实现

【代码】1047. 删除字符串中的所有相邻重复项 JavaScript实现。

2022-11-06 10:34:40 450

原创 225. 用队列实现栈 JavaScript实现

【代码】225. 用队列实现栈 JavaScript实现。

2022-11-03 16:03:43 184

原创 349. 两个数组的交集 JavaScript实现

【代码】349. 两个数组的交集 JavaScript实现。

2022-09-01 15:44:45 248 1

原创 242. 有效的字母异位词 JavaScript实现

需要把字符映射到数组也就是哈希表的索引下标上,因为字符a到字符z的ASCII是26个连续的数值,所以字符a映射为下标0,相应的字符z映射为下标25。所以需要将 s[i] - ‘a’ 所在的元素做+1 操作即可,并不需要记住字符a的ASCII,只要求出一个相对数值就可以了。2、在遍历字符串t的时候,对t中出现的字符映射哈希表索引上的数值再做-1的操作。最后检查一下,record数组如果有的元素不为零0,说明字符串s和t一定是谁多了字符或者谁少了字符,return false。...

2022-09-01 15:12:05 201

原创 面试题 02.07. 链表相交 JavaScript实现

题目链接详细解答图解

2022-07-13 15:03:05 219

原创 24. 两两交换链表中的节点 JavaScript实现

题目链接二、迭代

2022-07-12 15:00:26 336

原创 203. 移除链表元素 JavaScript实现

题目链接注意:防止头节点一开始就被删除,需要创建哑节点dummyHead。

2022-07-12 11:12:24 299

原创 【leetcode】数组总结篇

数组中的元素为什么不能删除: 数组在内存中是连续的地址空间,不能释放单一元素,如果要释放,就是全释放(程序运行结束,回收内存栈空间)。

2022-07-11 09:46:10 102

原创 59. 螺旋矩阵 II JavaScript实现

螺旋矩阵2

2022-07-10 15:57:06 247

原创 209. 长度最小的子数组 JavaScript实现

题目链接把队列当作滑动窗口除了使用这样的队列进行控制,还可以直接使用指针来控制。这样不用使用额外的空间二、直接使用滑动窗口解法一我们使用的是使用两个指针,我们也可以把它看做是一个窗口,每次往窗口中添加元素来判断是否满足。其实我们可以逆向思维,先固定一个窗口大小比如 leng,然后遍历数组,查看在数组中 leng 个元素长度的和是否有满足的,如果没有满足的我们就扩大窗口的大小继续查找,如果有满足的我们就记录下窗口的大小 leng,因为这个 leng 不一定是最小的,我们要缩小窗口的大小再继续找。...

2022-07-10 11:28:22 81

原创 977. 有序数组的平方 JavaScript实现

题目链接直接调用API,默认使用快排使用O(n) 时间复杂度解决。方法:比较左右两边数据的大小,分别用指针控制走向。每次将大的数据从头部塞入即可

2022-07-10 09:51:04 163

原创 27. 移除元素 JavaScript实现

题目链接下面的方法使用的就是双指针的做法,left控制元素的覆盖,right控制元素的遍历

2022-07-09 20:50:36 180

原创 704. 二分查找 JavaScript实现

题目链接

2022-07-09 18:53:08 86

原创 234. 回文链表 JavaScript实现

题目链接因为在链表中访问一个特定的节点需要O(n),而这个题目是需要遍历一半链表数量的节点,前后进行比较。二、快慢指针避免使用 O(n)O(n) 额外空间的方法就是改变输入。我们可以将链表的后半部分反转(修改链表结构),然后将前半部分和后半部分进行比较(反转后的前后链表应该是一样的)。1、找到中间节点,将链表拆分2、反转后半部分链表3、判断回文,前后链表是否相等4、恢复链表5、返回结果...

2022-06-17 17:18:28 263

原创 78. 子集 JavaScript实现

题目链接题目详解

2022-06-16 16:25:34 215

原创 64. 最小路径和 JavaScript实现

题目链接这个题目和1143.最长公共子序列思想类似,1143最后构建的也是网格,然后根据不同的位置去更新网格的值。动态规划求解的原因:由于每个元素对应的最小路径和与其相邻元素对应的最小路径和有关,所以可以使用动态规划求解1、dp数组的含义dp[i][j] 表示 从左上角出发到网格中(i,j)位置的最小路径和。则dp[m-1][n-1]时最后的结果,即右下角的元素。2、初始化dp数组dp[0][0] = grid[0][0]3、状态转移方程三、代码优化可以不用重新创建一个dp数组进行存储,可以在原

2022-06-15 21:31:47 114

原创 165. 比较版本号 JavaScript实现

题目链接将字符串(版本号)按照 . 分割符进行分割成不同的修订号,并且将这些修订号存放在两个数组当中。同时遍历这两个数组,比较它们的值。注意:

2022-06-14 16:43:28 376

原创 101. 对称二叉树 JavaScript实现

题目链接如果一个树的左子树与右子树镜像对称,那么这个树是对称的。

2022-06-14 15:30:22 89

原创 111. 二叉树的最小深度 JavaScript实现

题目链接递归找左右子树的最小深度,然后选更小的.这里使用的是深度优先遍历,也可以使用层次遍历。与543.二叉树的直径相比:

2022-06-11 16:23:58 184

原创 98. 验证二叉搜索树 JavaScript实现

题目链接一个二叉搜索树的中序遍历是一个递增序列,所以只需要中序遍历这个二叉树,然后判断这个序列是否是递增序列即可。注意:1、二叉搜索树的定义是左子树所有节点小于中间节点,右子树所有节点大于中间节点。所以不能单纯的比较左节点小于中间节点,右节点大于中间节点就完事了。...

2022-06-09 14:28:04 141

原创 43. 字符串相乘 JavaScript实现

题目链接这个题目和415.字符串相加很相似。遍历nums2的每一位和nums1进行相乘,将每一步的结果进行相加。注意点:补0的操作:num2 除了第一位的其他位与 num1 运算的结果需要 补0。不止是相加的时候要进行补0,在得到每步相乘的结果的时候也需要补0....

2022-06-03 10:06:38 270

原创 322. 零钱兑换 JavaScript实现

题目链接题目中说每种硬币的数量是无限的,可以看出是典型的完全背包问题。其实和爬楼梯的思路有点像,总金额就是爬到第几层楼梯。不同的面值数就是依次可以爬一楼或者两楼。但是这里需要取到最少的硬币数量,所以需要遍不同的面值,从而确定最小的数量。dp[i]表示凑足总额为j所需的硬币的最少个数时多少。对于dp[0~i]的每个状态,循环coins数组,寻找可以兑换的组合,用i面额减去当前硬币价值,dp[i-coin]在加上一个硬币数就是dp[i],最后取最小值就是答案dp[i] = Math.min(dp[i], dp[

2022-06-01 20:41:13 366

原创 155. 最小栈 JavaScript实现

155. 最小栈题目链接一、思想用一个辅助栈去存储当前栈中的最小值,这样就可以在常数项时间里检索到栈中的最小元素。1、push操作,当插入元素的时候,辅助栈里的栈顶元素需要和这个元素进行比较,将最小的元素存入辅助栈中,这样辅助栈的栈顶元素永远都是最小的。2、pop操作,当弹出元素的时候,需要将辅助栈的栈顶元素一并弹出,这样辅助栈的栈顶元素一定是当前元素栈里的最小值。(避免弹出的元素就是当前的最小值)二、代码实现var MinStack = function() { this.x_st

2022-05-31 18:08:26 122

原创 110. 平衡二叉树 JavaScript实现

110. 平衡二叉树题目链接一、自顶向下(暴力法)1、一棵树是平衡二叉树的条件是它的左右子树高度差不超过1,并且左右子树也是平衡二叉树2、这个定义里面涉及到高度计算的问题,所以需要另外设置函数。代码实现var isBalanced = function(root) { // 对于空节点的判断 if(!root) return true; // 一棵树是平衡二叉树的条件是它的左右子树高度差不超过1,并且左右子树也是平衡二叉树 if(Math.abs(depth(r

2022-05-27 20:55:32 149

原创 从遍历序列中构造二叉树有关题目

105. 从前序与中序遍历序列构造二叉树题目链接一、递归先序遍历的顺序是根节点,左子树,右子树。中序遍历的顺序是左子树,根节点,右子树。1、根据先序遍历得到根节点2、在中序遍历中找到根节点的位置,将其左子树和右子树找到3、在左子树和右子树上递归的进行二、代码实现 // 递归的建立二叉树,本身就写成一个递归函数var buildTree = function(preorder, inorder) { // 首先在先序里面找到根节点的值,并将这个值建立root节点 let te

2022-05-27 16:09:26 158

原创 104. 二叉树的最大深度 JavaScript实现

104. 二叉树的最大深度题目链接一、思想对二叉树进行层次遍历,用一个变量指控层数即可。二、代码实现var maxDepth = function(root) { if(!root) return 0; let queue = []; // 初始化队列 queue.push(root); // 控制层数 let level = 0; // 遍历二叉树,队列不为空 while(queue.length){ // 弹

2022-05-26 16:09:37 138

原创 93. 复原 IP 地址 JavaScript实现

93. 复原 IP 地址题目链接一、回溯法由于我们需要找出所有可能复原出的 IP 地址,因此可以考虑使用回溯的方法。题目详解二、代码实现var restoreIpAddresses = function(s) { let res=[]; // 遍历4层决策树,用start指针遍历整个字符串。 var dfs = function(subRes,start){ // 递归终止的条件 -- 切割的片段满4段,且耗尽所有字符 if(subR

2022-05-26 15:22:43 264

原创 151. 颠倒字符串中的单词 JavaScript实现

151. 颠倒字符串中的单词题目链接一、API解法var reverseWords = function(s) { // 1、使用trim去掉头尾的空格 // 2、使用split 将字符串按空格分割成字符串数组,至少一个空格. // 3、使用 reverse 将字符串数组进行反转; // 4、使用空格进行相连 return s.trim().split(/\s+/).reverse().join(" ");};二、双端队列将分割和反转的任务利用双端队列

2022-05-25 16:20:24 84

【灰灰考研】计算机网络复习全书.pdf

【灰灰考研】计算机网络复习全书.pdf

2021-04-02

数据结构1800题(答案全).pdf

数据结构1800题(答案全).pdf

2021-04-02

[kaoyan.com]2003年中国地质大学_武汉_数据结构考研试题.pdf

[kaoyan.com]2003年中国地质大学_武汉_数据结构考研试题.pdf

2021-04-02

[kaoyan.com]2002年中国地质大学_武汉_数据结构考研试题.pdf

[kaoyan.com]2002年中国地质大学_武汉_数据结构考研试题.pdf

2021-04-02

[kaoyan.com]2006年中国地质大学_武汉_数据结构考研试题.pdf

[kaoyan.com]2006年中国地质大学_武汉_数据结构考研试题.pdf

2021-04-02

[kaoyan.com]2004年中国地质大学_武汉_数据结构考研试题.pdf

[kaoyan.com]2004年中国地质大学_武汉_数据结构考研试题.pdf

2021-04-02

Python数据挖掘实战课件.zip

Python数据挖掘实战课件.zip

2021-04-02

[kaoyan.com]2004年中国地质大学_武汉_数据结构与程序设计考研试题.pdf

[kaoyan.com]2004年中国地质大学_武汉_数据结构与程序设计考研试题.pdf

2021-04-02

3.数据可视化课件(1).pdf

3.数据可视化课件(1).pdf

2021-04-02

[kaoyan.com]2005年中国地质大学_武汉_数据结构考研试题-1.pdf

[kaoyan.com]2005年中国地质大学_武汉_数据结构考研试题-1.pdf

2021-04-02

数据挖掘概念与技术(中文版).pdf

数据挖掘概念与技术(中文版).pdf

2021-04-02

【皮皮】计算机统考408思维导图.zip

【皮皮】计算机统考408思维导图.zip

2021-04-02

2017_830_计算机软件综合.pdf

2017_830_计算机软件综合.pdf

2021-04-02

计算机网络试题.pdf

计算机网络试题.pdf

2021-04-02

计算机组成原理思维导图.png

计算机组成原理思维导图.png

2021-04-02

(Q)计算机网络复习资料 .pdf

(Q)计算机网络复习资料 .pdf

2021-04-02

计算机网络简答题.doc

计算机网络简答题.doc

2021-04-02

计算机网络面试题总结.pdf

计算机网络面试题总结.pdf

2021-04-02

计算机前沿.doc

计算机前沿.doc

2021-04-02

2019中国地质大学复试笔试试题.pdf

2019中国地质大学复试笔试试题.pdf

2021-04-02

复试英语自我介绍模板.pdf

复试英语自我介绍模板.pdf

2021-04-02

英语复试常见问题.pdf

英语复试常见问题.pdf

2021-04-02

2018年计算机软件专业复试专业课高频面试题.pdf

2018年计算机软件专业复试专业课高频面试题.pdf

2021-04-02

考研复试英语口语笔记.pdf

考研复试英语口语笔记.pdf

2021-04-02

复试题目总结.docx

复试题目总结.docx

2021-04-02

2020复试问题(部分.docx

2020复试问题(部分.docx

2021-04-02

附件2 、2021年硕士研究生复试考生诚信承诺书.docx

附件2 、2021年硕士研究生复试考生诚信承诺书.docx

2021-04-02

考研复试英语问答.doc

考研复试英语问答.doc

2021-04-02

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除