3576. 数组元素相等转换
算法
- 每次操作可以翻转一对相邻元素的符号
- 为使所有元素相等,最终需要所有元素都是
1或-1 - 从左往右遍历数组,维护一个全局的乘积影响变量
mul(表示前面的操作对当前元素造成的正负反转) - 遇到第
i个元素与目标不符时(考虑乘积影响),对i + 1执行一次操作(乘以-1) - 统计所需的操作次数,若超过
k或无法继续(要翻转的下一个元素不存在),则返回false
复杂度分析
- 时间复杂度:
O(n) - 空间复杂度:
O(1)
C++ 代码
|
|
Python 代码
|
|
Go 代码
|
|
JavaScript 代码
|
|