题目:给你一个整数数组 nums,返回 数组 answer ,其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位&nb
题目:有一个单链表的 head,我们想删除它其中的一个节点 node。给你一个需要删除的节点 node 。你将 无法访问 第一个节点 head。链表的所有值都是 唯一的,并且保证给定的节点 node 不是链表中的最后一个节点。删除给定的节点。注意,删除节点并不是指从内存中删除它。这里的意
题目:给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。百度百科中最近公共祖先的定义为:“对于有根树 T 的两个节点 p、q,最近公共祖先表示为一个节点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。” 示例 1:5 1 3 。示例 2:5 4 5 。示例 3:输入:root = [1,2], p = 1, q = 2 输出:1&n
题目:给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先。百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。”例如,给定如下二叉搜索树: root = [6,2,8,0,4,7,9,null,null,3,5] 示例 1:2
题目:给你一个单链表的头节点 head ,请你判断该链表是否为回文链表。如果是,返回 true ;否则,返回 false 。 示例 1:输入:head = [1,2,2,1] 输出:true示例 2:输入:head = [1,2] 输出:false代码实现:class Solution { public boolean
题目:给定一个整数 n,计算所有小于等于 n 的非负整数中数字 1 出现的个数。 示例 1:输入:n = 13 输出:6示例 2:输入:n = 0 输出:0代码实现:class Solution { public int countDigitOne(int n) { // mulk 表示 10^k
题目:请你仅使用两个栈实现先入先出队列。队列应当支持一般队列支持的所有操作(push、pop、peek、empty):实现 MyQueue 类:void push(int x) 将元素 x 推到队列的末尾int pop() 从队列的开头移除并返回元素int peek() 返回队列开头的元素boolean empty() 如果队列为空,返回
题目:给你一个整数 n,请你判断该整数是否是 2 的幂次方。如果是,返回 true ;否则,返回 false 。如果存在一个整数 x 使得 n == 2x ,则认为 n 是 2 的幂次方。 示例 1:输入:n = 1 输出:true 解释:20 = 1示例 2:输入:n = 16
题目:给定一个二叉搜索树的根节点 root ,和一个整数 k ,请你设计一个算法查找其中第 k 个最小元素(从 1 开始计数)。 示例 1:输入:root = [3,1,4,null,2], k = 1 输出:1示例 2:输入:root = [5,3,6,2,4,null,null,1], k = 3 输出:3代码实现:clas
题目:给定一个大小为 n 的整数数组,找出其中所有出现超过 ⌊ n/3 ⌋ 次的元素。 示例 1:输入:nums = [3,2,3] 输出:[3]示例 2:输入:nums = [1] 输出:[1]示例 3:输入:nums = [1,2] 输出:[1,2]代码实现:class Solution { public List<In
题目:给定一个 无重复元素 的 有序 整数数组 nums 。返回 恰好覆盖数组中所有数字 的 最小有序 区间范围列表 。也就是说,nums 的每个元素都恰好被某个区间范围所覆盖,并且不存在属于某个范围但不属于 nums 的数字 x 。列表
题目:给你一个字符串表达式 s ,请你实现一个基本计算器来计算并返回它的值。整数除法仅保留整数部分。你可以假设给定的表达式总是有效的。所有中间结果将在 [-231, 231 - 1] 的范围内。注意:不允许使用任何将字符串作为数学表达式计算的内置函数,比如 eval() 。 示例 1:输入:s = "3+2*2" 输出
题目:给你一棵二叉树的根节点 root ,翻转这棵二叉树,并返回其根节点。 示例 1:输入:root = [4,2,7,1,3,6,9] 输出:[4,7,2,9,6,3,1]示例 2:输入:root = [2,1,3] 输出:[2,3,1]示例 3:输入:root = [] 输出:[]代码实现:class Solution { public TreeNode
题目:给定一个二叉搜索树的根节点 root ,和一个整数 k ,请你设计一个算法查找其中第 k 个最小元素(从 1 开始计数)。 示例 1:输入:root = [3,1,4,null,2], k = 1 输出:1示例 2:输入:root = [5,3,6,2,4,null,null,1], k = 3 输出:3 &nb
题目:给你一棵二叉树的根节点 root ,翻转这棵二叉树,并返回其根节点。 示例 1:输入:root = [4,2,7,1,3,6,9] 输出:[4,7,2,9,6,3,1]示例 2:输入:root = [2,1,3] 输出:[2,3,1]示例 3:输入:root = [] 输出:[]代码实现:class Solution { public TreeNode inv
题目:请你仅使用两个队列实现一个后入先出(LIFO)的栈,并支持普通栈的全部四种操作(push、top、pop 和 empty)。实现 MyStack 类:void push(int x) 将元素 x 压入栈顶。int pop() 移除并返回栈顶元素。int top() 返回栈顶元素。boolean empty() 如
题目:给你一个字符串表达式 s ,请你实现一个基本计算器来计算并返回它的值。注意:不允许使用任何将字符串作为数学表达式计算的内置函数,比如 eval() 。 示例 1:输入:s = "1 + 1" 输出:2示例 2:输入:s = " 2-1 + 2 " 输出:3示例 3:输入:s = "(1+(4+5+2)-3)+(6+8)" 输出:23代码实现:
题目:给你 二维 平面上两个 由直线构成且边与坐标轴平行/垂直 的矩形,请你计算并返回两个矩形覆盖的总面积。每个矩形由其 左下 顶点和 右上 顶点坐标表示:第一个矩形由其左下顶点 (ax1, ay1) 和右上顶点 (ax2, ay2) 定义。第二个矩形由其左下顶点 (b
题目:给你一棵 完全二叉树 的根节点 root ,求出该树的节点个数。完全二叉树 的定义如下:在完全二叉树中,除了最底层节点可能没填满外,其余每层节点数都达到最大值,并且最下面一层的节点都集中在该层最左边的若干位置。若最底层为第 h 层,则该层包含 1~ 2h 个节点。 示例 1:输入:r
题目:在一个由 '0' 和 '1' 组成的二维矩阵内,找到只包含 '1' 的最大正方形,并返回其面积。 示例 1:输入:matrix = [["1","0","1","0","0"],["1","0","1","1","1"],["1","1","1","1","1"],["1","0","0","1","0"]] 输出:4示例
题目:给你一个整数数组 nums 和两个整数 indexDiff 和 valueDiff 。找出满足下述条件的下标对 (i, j):i != j,abs(i - j) <= indexDiffabs(nums[i] - nums[j]) <= valueDiff如果存在,返回 true ;否则,返
题目:给你一个整数数组 nums 和一个整数 k ,判断数组中是否存在两个 不同的索引 i 和 j ,满足 nums[i] == nums[j] 且 abs(i - j) <= k 。如果存在,返回 true ;否则,返回 false
题目:城市的 天际线 是从远处观看该城市中所有建筑物形成的轮廓的外部轮廓。给你所有建筑物的位置和高度,请返回 由这些建筑物形成的 天际线 。每个建筑物的几何信息由数组 buildings 表示,其中三元组 buildings[i] = [lefti, righti, heighti] 表示:lefti&nbs
题目:给你一个整数数组 nums 。如果任一值在数组中出现 至少两次 ,返回 true ;如果数组中每个元素互不相同,返回 false 。 示例 1:输入:nums = [1,2,3,1] 输出:true示例 2:输入:nums = [1,2,3,4] 输出:false示例 3:输入:nums =
题目:找出所有相加之和为 n 的 k 个数的组合,且满足下列条件:只使用数字1到9每个数字 最多使用一次 返回 所有可能的有效组合的列表 。该列表不能包含相同的组合两次,组合可以以任何顺序返回。 示例 1:输入: k = 3, n = 7 输出: [[1,2,4]] 解释: 1 + 2 + 4 = 7 没有其
Copyright © 2005-2023 51CTO.COM 版权所有 京ICP证060544号