给定一棵二叉树,你需要计算它的直径长度。一棵二叉树的直径长度是任意两个结点路径长度中的最大值。这条路径可能穿过也可能不穿过根结点。
注意:两结点之间的路径长度是以它们之间边的数目表示。
给定一棵二叉树,你需要计算它的直径长度。一棵二叉树的直径长度是任意两个结点路径长度中的最大值。这条路径可能穿过也可能不穿过根结点。
注意:两结点之间的路径长度是以它们之间边的数目表示。
给你一个包含n
个整数的数组nums
,判断nums
中是否存在三个元素a,b,c,使得a + b + c = 0?请你找出所有和为0且不重复的三元组。
注意:答案中不可以包含重复的三元组。
提示:
给定一个可包含重复数字的序列nums
,按任意顺序返回所有不重复的全排列。
提示:
你这个学期必须选修numCourses
门课程,记为0
到numCourses - 1
。
在选修某些课程之前需要一些先修课程。先修课程按数组prerequisites
给出,其中 prerequisites[i] = [ai, bi]
,表示如果要学习课程ai
则 必须先学习课程bi
。
例如,先修课程对[0, 1]
表示:想要学习课程0
,你需要先完成课程1
。
请你判断是否可能完成所有课程的学习?如果可以,返回true
;否则,返回false
。
提示:
整数数组nums
按升序排列,数组中的值互不相同。
在传递给函数之前,nums
在预先未知的某个下标k
(0 <= k < nums.length
)上进行了旋转,使数组变为 [nums[k], nums[k+1], ..., nums[n-1], nums[0], nums[1], ..., nums[k-1]]
(下标从0开始计数)。例如,[0,1,2,4,5,6,7]在下标3处经旋转后可能变为[4,5,6,7,0,1,2]。
给你旋转后的数组nums
和一个整数target
,如果nums
中存在这个目标值target
,则返回它的下标,否则返回-1。
提示:
1 <= nums.length <= 5000
-10^4 <= nums[i] <= 10^4
nums
中的每个值都 独一无二nums
在预先未知的某个下标上进行了旋转-10^4 <= target <= 10^4
给你一个整数数组nums
和一个整数k
,请你统计并返回该数组中和为k
的连续子数组的个数。
提示:
给你一个字符串s
,逐个翻转字符串中的所有单词。
单词是由非空格字符组成的字符串。s
中使用至少一个空格将字符串中的单词分隔开。
请你返回一个翻转s中单词顺序并用单个空格相连的字符串。
说明:
s
可以在前面、后面或者单词间包含多余的空格。提示:
s
包含英文大小写字母、数字和空格' '
s
中至少存在一个单词给定一个字符串s
,请你找出其中不含有重复字符的最长子串的长度。
提示:
s
由英文字母、数字、符号和空格组成给定一个$n\times n$的二维矩阵matrix
表示一个图像。请你将图像顺时针旋转90度。
你必须在原地旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要使用另一个矩阵来旋转图像。
提示:
给定一个二叉搜索树的根节点root和一个值key,删除二叉搜索树中的key对应的节点,并保证二叉搜索树的性质不变。返回二叉搜索树(有可能被更新)的根节点的引用。
一般来说,删除节点可分为两个步骤:
提示: