二分查找
一道题目写一天
这个作者很懒,什么都没留下…
展开
-
二叉搜索子树的最大键值和
问题描述 :给你一棵以 root 为根的 二叉树 (注意:不一定是二叉搜索树),请你返回任意二叉搜索子树的最大键值和。二叉搜索树的定义如下:任意节点的左子树中的键值都 小于 此节点的键值。任意节点的右子树中的键值都 大于 此节点的键值。任意节点的左子树和右子树都是二叉搜索树。示例 1:输入:root = [1,4,3,2,4,2,5,null,null,null,null,null,null,4,6]输出:20解释:因为以1为根的二叉树不是二叉搜索树,所以键值为 3 的子树是和最大的二叉原创 2020-08-04 14:55:21 · 835 阅读 · 0 评论 -
从二叉搜索树到更大和树
问题描述 :给出二叉 搜索 树的根节点,该二叉树的节点值各不相同,修改二叉树,使每个节点 node 的新值等于原树中大于或等于 node.val 的所有节点的值之和。提醒一下,二叉搜索树满足下列约束条件:节点的左子树仅包含键 小于 节点键的节点。节点的右子树仅包含键 大于 节点键的节点。左右子树也必须是二叉搜索树。示例:输入:[4,1,6,0,2,5,7,null,null,null,3,null,null,null,8]输出:[30,36,21,36,35,26,15,33,8]可使用原创 2020-08-04 14:51:05 · 249 阅读 · 0 评论 -
验证二叉搜索树
问题描述 :给定一个二叉树,判断其是否是一个有效的二叉搜索树。一个二叉搜索树具有如下特征:节点的左子树只包含小于当前节点的数。节点的右子树只包含大于当前节点的数。所有左子树和右子树自身必须也是二叉搜索树。示例 1:输入:2/ \1 3输出: true示例 2:输入:5/ \1 4/ \3 6输出: false解释: 输入为: [5,1,4,null,null,3,6]。 根节点的值为 5 ,但是其右子节点值为 4 。可使用以下main函数:#inclu原创 2020-08-04 13:37:32 · 188 阅读 · 0 评论 -
矩形区域不超过 K 的最大数值和
问题描述 :给定一个非空二维矩阵 matrix 和一个整数 k,找到这个矩阵内部不大于 k 的最大矩形和。示例:输入: matrix = [[1,0,1],[0,-2,3]], k = 2输出: 2解释: 矩形区域 [[0, 1], [-2, 3]] 的数值和是 2,且 2 是不超过 k 的最大数字(k = 2)。说明:矩阵内的矩形区域面积必须大于 0。如果行数远大于列数,你将如何解答呢?输入说明 :首先输入matrix的行数m、列数n,然后输入m行,每行n个整数。最后输入一个整数k原创 2020-08-03 17:19:18 · 419 阅读 · 0 评论 -
寻找右区间
问题描述 :给定一组区间(包含起始点和终点),对于每一个区间 i,检查是否存在一个区间 j,它的起始点大于或等于区间 i 的终点,这可以称为 j 在 i 的“右侧”。对于任何区间,你需要存储的满足条件的区间 j 的最小索引,这意味着区间 j 有最小的起始点可以使其成为“右侧”区间。如果区间 j 不存在,则将区间 i 存储为 -1。最后,你需要输出一个值为存储的区间值的数组。注意:你可以假设区间的终点总是大于它的起始点。你可以假定这些区间都不具有相同的起始点。示例 1:输入: [ [1,2] ]原创 2020-08-02 16:51:57 · 347 阅读 · 0 评论 -
搜索旋转排序数组 II
问题描述 :假设我们的数组是一个按照升序排序的数组在预先未知的某个点上进行了旋转得到的。( 例如,数组 [2,5,6,0,0,1,2] ,可以知道是从[0,0,1,2,2,5,6] 旋转变来的 )。编写一个函数来判断给定的目标值是否存在于数组中。若存在返回 true,否则返回 false。要求使用二分查找。示例 1:输入: nums = [2,5,6,0,0,1,2], target = 0输出: true示例 2:输入: nums = [2,5,6,0,0,1,2], target = 3原创 2020-07-31 16:05:09 · 278 阅读 · 0 评论