3197. 包含所有 1 的最小矩形面积 II

题目 给你一个二维 二进制 数组 grid。你需要找到 3 个 不重叠、面积 非零 、边在水平方向和竖直方向上的矩形,并且满足 grid 中所有的 1 都在这些矩形的内部。 返回这些矩形面积之和的 最小 可能值。 注意,这些矩形可以相接。 示例 1: 输入: grid = [[1,0,1],[1,1,1]] 输出: 5 解释: * 位于 (0, 0) 和 (1, 0) 的 1 被一个面积为 2 的矩形覆盖。 * 位于 (0, 2) 和…

3195. 包含所有 1 的最小矩形面积 I

题目 给你一个二维 二进制 数组 grid。请你找出一个边在水平方向和竖直方向上、面积 最小 的矩形,并且满足 grid 中所有的 1 都在矩形的内部。 返回这个矩形可能的 最小 面积。 示例 1: 输入: grid = [[0,1,0],[1,0,1]] 输出: 6 解释: 这个最小矩形的高度为 2,宽度为 3,因此面积为 2 * 3 = 6。 示例 2: 输入: grid = [[0,0],[1,0]] 输出: 1 解释: 这个最小矩形的高度和宽度都是…

1504. 统计全 1 子矩形

题目 给你一个 m x n 的二进制矩阵 mat ,请你返回有多少个 子矩形 的元素全部都是 1 。 示例 1: 输入:mat = [[1,0,1],[1,1,0],[1,1,0]] 输出:13 解释: 有 6 个 1x1 的矩形。 有 2 个 1x2 的矩形。 有 3 个 2x1 的矩形。 有 1 个 2x2 的矩形。 有 1 个…

326. 3 的幂

题目 给定一个整数,写一个函数来判断它是否是 3 的幂次方。如果是,返回 true ;否则,返回 false 。 整数 n 是 3 的幂次方需满足:存在整数 x 使得 n == 3^x 示例 1: 输入:n = 27 输出:true 示例 2: 输入:n = 0 输出:false 示例 3: 输入:n = 9 输出:true 示例 4: 输入:n = 45 输出:false…

1277. 统计全为 1 的正方形子矩阵

题目 给你一个 m * n 的矩阵,矩阵中的元素不是 0 就是 1,请你统计并返回其中完全由 1 组成的 正方形 子矩阵的个数。 示例 1: 输入:matrix = [   [0,1,1,1],   [1,1,1,1],   [0,1,1,1] ] 输出:15 解释: 边长为 1 的正方形有 10 个。 边长为 2 的正方形有 4 个。 边长为 3 的正方形有 1 个。 正方形的总数 = 10…

2348. 全 0 子数组的数目

题目 给你一个整数数组 nums ,返回全部为 0 的 子数组 数目。 子数组 是一个数组中一段连续非空元素组成的序列。 示例 1: 输入:nums = [1,3,0,0,2,0,0,4] 输出:6 解释: 子数组 [0] 出现了 4 次。 子数组 [0,0] 出现了 2 次。 不存在长度大于 2 的全 0 子数组,所以我们返回 6 。 示例 2: 输入:nums = [0,0,0,…

869. 重新排序得到 2 的幂

题目 给定正整数 n ,我们按任何顺序(包括原始顺序)将数字重新排序,注意其前导数字不能为零。 如果我们可以通过上述方式得到 2 的幂,返回 true;否则,返回 false。 示例 1: 输入:n = 1 输出:true 示例 2: 输入:n = 10 输出:false 提示: * 1 <= n <= 10^9 解题思路 题目的关键在于 “将数字重新排序”。如果一个数 A 可以通过重排其各位数字得到另一个数 B,那么 A 和 B 必须满足以下两个条件: 1. 它们的位数相同。…

3487. 删除后的最大子数组元素和

题目 给你一个整数数组 nums 。 你可以从数组 nums 中删除任意数量的元素,但不能将其变为 空 数组。执行删除操作后,选出 nums 中满足下述条件的一个子数组: 1. 子数组中的所有元素 互不相同 。 2. 最大化 子数组的元素和。 返回子数组的 最大元素和 。 子数组 是数组的一个连续、非空 的元素序列。 示例 1: 输入:nums = [1,2,3,4,5] 输出:15 解释: 不删除任何元素,选中整个数组得到最大元素和。 示例 2: 输入:nums = [1,1,0,1,1] 输出:1…