给定一个整数 n
和一个整数 p
,它们表示一个长度为 n
且除了下标为 p
处是 1
以外,其他所有数都是 0
的数组 arr
。同时给定一个整数数组 banned
,它包含数组中的一些限制位置。在 arr
上进行下列操作:
banned
中的位置上,反转大小为 k
的 。返回一个包含 n
个结果的整数数组 answer
,其中第 i
个结果是将 1
放到位置 i
处所需的 最少 翻转操作次数,如果无法放到位置 i
处,此数为 -1
。
示例 1:
输入:n = 4, p = 0, banned = [1,2], k = 4
输出:[0,-1,-1,1]
解释:
示例 2:
输入:n = 5, p = 0, banned = [2,4], k = 3
输出:[0,-1,-1,-1,-1]
解释:
[0, 2]
的子数组位置上执行操作,因为位置 2 在 banned 中。示例 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
中的值 互不相同 。