3542. 将所有元素变为 0 的最少操作次数

题目 给你一个大小为 n 的 非负 整数数组 nums 。你的任务是对该数组执行若干次(可能为 0 次)操作,使得 所有 元素都变为 0。 在一次操作中,你可以选择一个子数组 [i, j](其中 0 <= i <= j < n),将该子数组中所有 最小的非负整数 的设为 0。 返回使整个数组变为 0 所需的最少操作次数。 一个 子数组 是数组中的一段连续元素。 示例 1: 输入: nums = [0,2] 输出: 1 解释: * 选择子数组 [1,1]…

1611. 使整数变为 0 的最少操作次数

题目 给你一个整数 n,你需要重复执行多次下述操作将其转换为 0 : * 翻转 n 的二进制表示中最右侧位(第 0 位)。 * 如果第 (i-1) 位为 1 且从第 (i-2) 位到第 0 位都为 0,则翻转 n 的二进制表示中的第 i 位。 返回将 n 转换为 0 的最小操作次数。 示例 1: 输入:n = 3 输出:2 解释:3 的二进制表示为 "11" "11" -> "…

2528. 最大化城市的最小电量

题目 给你一个下标从 0 开始长度为 n 的整数数组 stations ,其中 stations[i] 表示第 i 座城市的供电站数目。 每个供电站可以在一定 范围 内给所有城市提供电力。换句话说,如果给定的范围是 r ,在城市 i 处的供电站可以给所有满足 |i - j| <= r 且 0 <= i, j <= n - 1 的城市 j 供电。 * |x| 表示 x 的 绝对值 。比方说,|7 - 5| = 2 ,|3…

3607. 电网维护

题目 给你一个整数 c,表示 c 个电站,每个电站有一个唯一标识符 id,从 1 到 c 编号。 这些电站通过 n 条 双向 电缆互相连接,表示为一个二维数组 connections,其中每个元素 connections[i] = [ui, vi] 表示电站 ui 和电站 vi 之间的连接。直接或间接连接的电站组成了一个 电网 。 最初,所有 电站均处于在线(正常运行)状态。 另给你一个二维数组 queries,其中每个查询属于以下 两种类型之一 : * [1, x]:请求对电站 x 进行维护检查。如果电站 x 在线,则它自行解决检查。…

1578. 使绳子变成彩色的最短时间

题目 Alice 把 n 个气球排列在一根绳子上。给你一个下标从 0 开始的字符串 colors ,其中 colors[i] 是第 i 个气球的颜色。 Alice 想要把绳子装扮成 五颜六色的 ,且她不希望两个连续的气球涂着相同的颜色,所以她喊来 Bob 帮忙。Bob 可以从绳子上移除一些气球使绳子变成 彩色 。给你一个 下标从 0 开始 的整数数组 neededTime ,其中 neededTime[i] 是 Bob 从绳子上移除第 i 个气球需要的时间(以秒为单位)。 返回 Bob 使绳子变成 彩色 需要的 最少时间 。 示例 1: 输入:colors…

2257. 统计网格图中没有被保卫的格子数

题目 给你两个整数 m 和 n 表示一个下标从 0 开始的 m x n 网格图。同时给你两个二维整数数组 guards 和 walls ,其中 guards[i] = [rowi, coli] 且 walls[j] = [rowj, colj] ,分别表示第 i 个警卫和第 j 座墙所在的位置。 一个警卫能看到 4 个坐标轴方向(即东、南、西、北)的 所有 格子,除非他们被一座墙或者另外一个警卫 挡住 了视线。如果一个格子能被 至少 一个警卫看到,那么我们说这个格子被 保卫 了。…

1526. 形成目标数组的子数组最少增加次数

题目 给你一个整数数组 target 和一个数组 initial ,initial 数组与 target  数组有同样的维度,且一开始全部为 0 。 请你返回从 initial 得到  target 的最少操作次数,每次操作需遵循以下规则: * 在 initial 中选择 任意 子数组,并将子数组中每个元素增加 1 。 答案保证在 32 位有符号整数以内。 示例 1: 输入:target = [1,2,3,2,1] 输出:3 解释:我们需要至少 3 次操作从 intial 数组得到 target 数组。 [0,0,0,0,…

3354. 使数组元素等于零

题目 给你一个整数数组 nums 。 开始时,选择一个满足 nums[curr] == 0 的起始位置 curr ,并选择一个移动 方向 :向左或者向右。 此后,你需要重复下面的过程: * 如果 curr 超过范围 [0, n - 1] ,过程结束。 * 如果 nums[curr] == 0 ,沿当前方向继续移动:如果向右移,则 递增 curr ;如果向左移,则 递减 curr 。 * 如果 nums[curr] > 0: * 将 nums[curr] 减 1 。 * 反转 移动方向(向左变向右,反之亦然)…