一、题目大意存在一个无向图,图中有n个节点。其中每个节点都有一个介于0到n-1之间的唯一编号。给你一个二维数组graph,其中graph[u]是一个节点数组,由节点u的邻接节点组成。形式上,对于graph[u]中的每个v,都存在一条位于节点u和节点v之间的无向边。该无向图同时具有以下属性:不存在自环(graph[u]不包含u)。不存在平行边(graph[u]不包含重复值)。如果v在graph[u]内,那么u也应该在graph[v]内(该图是无向图)这个图可能不是连通图,也就是说两个节点u和v之间可能不存在一条连通彼此的路径。二分图定义:如果能将一个图的节点集合分割成两个独立的子集A和B,并使图
一、题目大意存在一个无向图,图中有n个节点。其中每个节点都有一个介于0到n-1之间的唯一编号。给你一个二维数组graph,其中graph[u]是一个节点数组,由节点u的邻接节点组成。形式上,对于graph[u]中的每个v,都存在一条位于节点u和节点v之间的无向边。该无向图同时具有以下属性:不存在自环(graph[u]不包含u)。不存在平行边(graph[u]不包含重复值)。如果v在graph[u]内,那么u也应该在graph[v]内(该图是无向图)这个图可能不是连通图,也就是说两个节点u和v之间可能不存在一条连通彼此的路径。二分图定义:如果能将一个图的节点集合分割成两个独立的子集A和B,并使图
一、题目大意给定一个二叉树,找到该树中两个指定节点的最近公共祖先。百度百科中最近公共祖先的定义为:“对于有根树T的两个节点p、q,最近公共祖先表示为一个节点x,满足x是p、q的祖先且x的深度尽可能大(一个节点也可以是它自己的祖先)。”示例1:输入:root=[3,5,1,6,2,0,8,null,null,7,4],p=5,q=1输出:3解释:节点5和节点1的最近公共祖先是节点3。示例2:输入:root=[3,5,1,6,2,0,8,null,null,7,4],p=5,q=4输出:5解释:节点5和节点4的最近公共祖先是节点5。因为根据定义最近公共祖先节点可以为节点本身。示例3:输入:root
一、题目大意给定一个二叉树,找到该树中两个指定节点的最近公共祖先。百度百科中最近公共祖先的定义为:“对于有根树T的两个节点p、q,最近公共祖先表示为一个节点x,满足x是p、q的祖先且x的深度尽可能大(一个节点也可以是它自己的祖先)。”示例1:输入:root=[3,5,1,6,2,0,8,null,null,7,4],p=5,q=1输出:3解释:节点5和节点1的最近公共祖先是节点3。示例2:输入:root=[3,5,1,6,2,0,8,null,null,7,4],p=5,q=4输出:5解释:节点5和节点4的最近公共祖先是节点5。因为根据定义最近公共祖先节点可以为节点本身。示例3:输入:root
1.题目一个机器人位于一个 mxn 网格的左上角(起始点在下图中标记为“Start”)。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为“Finish”)。问总共有多少条不同的路径? 示例1:输入:m=3,n=7输出:28示例2:输入:m=3,n=2输出:3解释:从左上角开始,总共有3条路径可以到达右下角。1.向右->向下->向下2.向下->向下->向右3.向下->向右->向下示例3:输入:m=7,n=3输出:28示例4:输入:m=3,n=3输出:6 提示:1题目数据保证答案小于等于 2*1092.题目分析 这是一个二维的动态规划,与一维动态规划类似,二维状态是
1.题目给你一个非负整数数组 nums ,你最初位于数组的第一个位置。数组中的每个元素代表你在该位置可以跳跃的最大长度。你的目标是使用最少的跳跃次数到达数组的最后一个位置。假设你总是可以到达数组的最后一个位置。 示例1:输入:nums=[2,3,1,1,4]输出:2解释:跳到最后一个位置的最小跳跃数是2。 从下标为0跳到下标为1的位置,跳 1 步,然后跳 3 步到达数组的最后一个位置。示例2:输入:nums=[2,3,0,1,4]输出:2 提示:1402.题目分析 这是一道动态规划的题目,思路求解和跳跃游戏1类似,只不过现在题目假设从起点都能到终点,找从起点到终点的最小跳数。 设dp[i]
一、题目大意给你一个整数数组nums和两个整数k和t。请你判断是否存在两个不同下标i和j,使得abs(nums[i]-nums[j])如果存在则返回true,不存在返回false。示例1:输入:nums=[1,2,3,1],k=3,t=0输出:true示例2:输入:nums=[1,0,1,1],k=1,t=2输出:true示例3:输入:nums=[1,5,9,1,5,9],k=2,t=3输出:false提示:0-23100来源:力扣(LeetCode)链接:https://leetcode.cn/problems/contains-duplicate-iii著作权归领扣网络所有。商业转载请联系
一、题目大意给你一个字符串表达式s,请你实现一个基本计算器来计算并返回它的值。整数除法仅保留整数部分。你可以假设给定的表达式总是有效的。所有中间结果将在[-231,231-1]的范围内。注意:不允许使用任何将字符串作为数学表达式计算的内置函数,比如eval()。示例1:输入:s="3+2*2"输出:7示例2:输入:s="3/2"输出:1示例3:输入:s="3+5/2"输出:5提示:1s由整数和算符('+','-','*','/')组成,中间由一些空格隔开s表示一个有效表达式表达式中的所有整数都是非负整数,且在范围[0,231-1]内题目数据保证答案是一个32-bit整数来源:力扣(LeetCo
一、题目大意给定一个字符串s,统计并返回具有相同数量0和1的非空(连续)子字符串的数量,并且这些子字符串中的所有0和所有1都是成组连续的。重复出现(不同位置)的子串也要统计它们出现的次数。示例1:输入:s="00110011"输出:6解释:6个子串满足具有相同数量的连续1和0:"0011"、"01"、"1100"、"10"、"0011"和"01"。注意,一些重复出现的子串(不同位置)要统计它们出现的次数。另外,"00110011"不是有效的子串,因为所有的0(还有1)没有组合在一起。示例2:输入:s="10101"输出:4解释:有4个子串:"10"、"01"、"10"、"01",具有相同数量的
题目链接注意事项根据满二叉树的节点编号规则:若根节点编号为u,则其左子节点编号为u一个朴素的想法是:我们在DFS过程中使用两个哈希表分别记录每层深度中的最小节点编号和最大节点编号,两者距离即是当前层的宽度,最终所有层数中的最大宽度即是答案。而实现上,我们可以利用先DFS左节点,再DFS右节点的性质可知,每层的最左节点必然是最先被遍历到,因此我们只需要记录当前层最先被遍历到点编号(即当前层最小节点编号),并在DFS过程中计算宽度,更新答案即可。关于编号溢出问题,之所以溢出仍能AC是因为测试数组中没有同层内「宽度」左端点不溢出,右端点溢出,同时该层就是最大宽度的数据点。我们可以通过u=u-map.