草庐IT

LeetCode刷题之树

全部标签

(动态规划) 剑指 Offer 48. 最长不含重复字符的子字符串 ——【Leetcode每日一题】

❓剑指Offer48.最长不含重复字符的子字符串难度:中等请从字符串中找出一个最长的不包含重复字符的子字符串,计算该最长子字符串的长度。示例1:输入:“abcabcbb”输出:3解释:因为无重复字符的最长子串是“abc”,所以其长度为3。示例2:输入:“bbbbb”输出:1解释:因为无重复字符的最长子串是“b”,所以其长度为1。示例3:输入:“pwwkew”输出:3解释:因为无重复字符的最长子串是“wke”,所以其长度为3。请注意,你的答案必须是子串的长度,“pwke”是一个子序列,不是子串。提示:s.length注意:本题与3.无重复字符的最长子串相同。💡思路:动态规划定义dp数组,dp[i

Leetcode刷题笔记——单调性

单调性单调性是数学中使用的一种常见性质,通常用于描述函数,在高等数学中的定义常常为:设函数f(x)在区间I上有定义,如果对于I上的任意两个数x1和x2,当x1f(x2)),则称函数f(x)在区间I上是单调递增的(或者单调递减的)。例如如下图像就是两个单调函数。利用单调性我们可以减少很多重复的运算。例如,对于如下函数,我们给定其定义域为[0,+∞),现在要求查找出在其定义域内所有f(x)即y大于0.5的区间。如果不借助单调性,我们需要采用遍历的方法,依次遍历定义域中的所有点x,判断其f(x)是否满足条件(大于0.5)。如果借助单调性,我们知道上述函数是严格单调递增的,其图像如下:绿线表示y=0.

每天一道leetcode:934. 最短的桥(图论&中等&广度优先遍历)

今日份题目:给你一个大小为nxn的二元矩阵grid,其中1表示陆地,0表示水域。岛是由四面相连的1形成的一个最大组,即不会与非组内的任何其他1相连。grid中恰好存在两座岛。你可以将任意数量的0变为1,以使两座岛连接起来,变成一座岛。返回必须翻转的0的最小数目。示例1输入:grid=[[0,1],[1,0]]输出:1示例2输入:grid=[[0,1,0],[0,0,0],[0,0,1]]输出:2示例3输入:grid=[[1,1,1,1,1],[1,0,0,0,1],[1,0,1,0,1],[1,0,0,0,1],[1,1,1,1,1]]输出:1提示n==grid.length==grid[i]

算法leetcode|74. 搜索二维矩阵(rust重拳出击)

文章目录74.搜索二维矩阵:样例1:样例2:提示:分析:题解:rust:go:c++:python:java:74.搜索二维矩阵:给你一个满足下述两条属性的mxn整数矩阵:每行中的整数从左到右按非递减顺序排列。每行的第一个整数大于前一行的最后一个整数。给你一个整数target,如果target在矩阵中,返回true;否则,返回false。样例1:输入: matrix=[[1,3,5,7],[10,11,16,20],[23,30,34,60]],target=3 输出: true样例2:输入: matrix=[[1,3,5,7],[10,11,16,20],[23,30,34,60]],t

【数据结构】如何用栈实现队列?图文解析(LeetCode)

LeetCode链接:232.用栈实现队列-力扣(LeetCode)注:本文默认读者已掌握栈与队列的基本操作可以看这篇文章熟悉知识点:【数据结构】栈与队列_字节连结的博客-CSDN博客目录做题思路代码实现1.MyQueue2.myQueueCreate3.myQueuePush4.myQueuePeek5.myQueuePop6.myQueueEmpty7.myQueueFree全部代码做题思路简单来说,就是把一个栈(栈1)的数据捯入另一个栈(栈2),此时(栈2)出数据的顺序就和队列是一样的。为了更方便理解,我会画图来演示一下具体思路。我们需要两个栈来实现队列:push栈:专门入数据的栈pop

LeetCode:二叉树的前、中、后序遍历——如何创建一棵【二叉树】

🍎道阻且长,行则将至。🍓🌻算法,不如说它是一种思考方式🍀算法专栏:👉🏻123文章目录一、🌻二叉树1.简介2.种类3.构造与遍历二叉树的构造二叉树的遍历二、🍀LeetCode:二叉树的前、中、后序遍历🌴解题1.先序遍历2.中序遍历3.后序遍历一、🌻二叉树1.简介二叉树是一种树形数据结构,其每个节点最多只有两个子节点。通常将节点分为三种类型:根节点、内部节点和叶子节点。其中,根节点是二叉树的唯一访问起点,内部节点具有一个父节点和两个子节点,而叶子节点没有子节点。二叉树的底层数据结构可以使用链表或数组来实现。二叉树的应用非常广泛,例如在计算机科学中,二叉树是许多数据结构的基础,例如二叉搜索树、红黑树

(搜索) 剑指 Offer 12. 矩阵中的路径 ——【Leetcode每日一题】

❓剑指Offer12.矩阵中的路径难度:中等给定一个m*n二维字符网格board和一个字符串单词word。如果word存在于网格中,返回true;否则,返回false。单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。同一个单元格内的字母不允许被重复使用。例如,在下面的3×4的矩阵中包含单词"ABCCED"(单词中的字母已标出)。示例1:输入:board=[[“A”,“B”,“C”,“E”],[“S”,“F”,“C”,“S”],[“A”,“D”,“E”,“E”]],word=“ABCCED”输出:true示例2:输入:board=[[“a”

牛客前端刷题(六)—— JS基础

还在担心面试不通过吗?给大家推荐一个超级好用的刷面试题神器:牛客网,里面涵盖了各个领域的面试题库,还有大厂真题哦!赶快悄悄的努力起来吧,不苒在这里衷心祝愿各位大佬都能顺利通过面试。面试专栏分享,感觉有用的小伙伴可以点个订阅,不定时更新相关面试题:面试专栏。文章目录?正文1、letconstvar相关2、js数据类型,区别3、Object.assign的理解4、constructor的理解5、map和forEach的区别6、forof可以遍历

Leetcode-每日一题【剑指 Offer 13. 机器人的运动范围】

题目地上有一个m行n列的方格,从坐标 [0,0] 到坐标 [m-1,n-1] 。一个机器人从坐标 [0,0]的格子开始移动,它每次可以向左、右、上、下移动一格(不能移动到方格外),也不能进入行坐标和列坐标的数位之和大于k的格子。例如,当k为18时,机器人能够进入方格[35,37],因为3+5+3+7=18。但它不能进入方格[35,38],因为3+5+3+8=19。请问该机器人能够到达多少个格子?示例1:输入:m=2,n=3,k=1输出:3示例2:输入:m=3,n=1,k=0输出:1提示:10解题思路1.题目要求我们求出机器人能够到达多少个格子,对于这道题我们依旧采用深度优先搜索来解决。2.首先

数据结构刷题训练:用栈实现队列(力扣OJ)

目录前言1.题目:用栈实现队列2.思路3.分析 3.1定义“队列” 3.2创建队列3.3入队 3.4队头数据 3.5出队 3.6判空和销毁4.题解总结前言        栈和队列是数据结构中的两个重要概念,它们在算法和程序设计中都有着广泛的应用。本文将带你深入了解如何使用栈来模拟实现队列,让你在解决问题时更加灵活和创新,便于大家更深入的理解栈和队列。1.题目:用栈实现队列 题目描述: 题目链接:用栈实现队列https://leetcode.cn/problems/implement-queue-using-stacks/description/2.思路         这道题目的解题思路于队列