调试中...
调试中...
题目描述
题目描述
题解
题解
提交记录
提交记录
代码
代码
测试用例
测试用例
测试结果
测试结果
困难
相关标签
相关企业
提示

给定一个整数 n 和一个整数 p,它们表示一个长度为 n 且除了下标为 p 处是 1 以外,其他所有数都是 0 的数组 arr。同时给定一个整数数组 banned ,它包含数组中的一些限制位置。在 arr 上进行下列操作:

  • 如果单个 1 不在 banned 中的位置上,反转大小为 k

返回一个包含 n 个结果的整数数组 answer,其中第 i 个结果是将 1 放到位置 i 处所需的 最少 翻转操作次数,如果无法放到位置 i 处,此数为 -1 。

 

示例 1:

输入:n = 4, p = 0, banned = [1,2], k = 4

输出:[0,-1,-1,1]

解释:

  • 一开始 1 位于位置 0,因此我们需要在位置 0 上的操作数是 0。
  • 我们不能将 1 放置在被禁止的位置上,所以位置 1 和 2 的答案是 -1。
  • 执行大小为 4 的操作以反转整个数组。
  • 在一次操作后,1 位于位置 3,因此位置 3 的答案是 1。

示例 2:

输入:n = 5, p = 0, banned = [2,4], k = 3

输出:[0,-1,-1,-1,-1]

解释:

  • 一开始 1 位于位置 0,因此我们需要在位置 0 上的操作数是 0。
  • 我们不能在 [0, 2] 的子数组位置上执行操作,因为位置 2 在 banned 中。
  • 由于 1 不能够放置在位置 2 上,使用更多操作将 1 放置在其它位置上是不可能的。

示例 3:

输入:n = 4, p = 2, banned = [0,1,3], k = 1

输出:[-1,-1,0,-1]

解释:

执行大小为 1 的操作,且 1 永远不会改变位置。

 

提示:

  • 1 <= n <= 105
  • 0 <= p <= n - 1
  • 0 <= banned.length <= n - 1
  • 0 <= banned[i] <= n - 1
  • 1 <= k <= n 
  • banned[i] != p
  • banned 中的值 互不相同 。
通过次数
10.9K
提交次数
29.9K
通过率
36.5%


相关企业

提示 1
Can we use a breadth-first search to find the minimum number of operations?

提示 2
Find the beginning and end indices of the subarray of size k that can be reversed to bring 1 to a particular position.

提示 3
Can we visit every index or do we need to consider the parity of k?

评论 (0)

贡献者
© 2025 领扣网络(上海)有限公司
0 人在线
行 1,列 1
运行和提交代码需要登录
n =
4
p =
0
banned =
[1,2]
k =
4
Source