当前位置: 首页> 教育> 就业 > Leetcode 3192. Minimum Operations to Make Binary Array Elements Equal to One II

Leetcode 3192. Minimum Operations to Make Binary Array Elements Equal to One II

时间:2025/8/24 2:54:49来源:https://blog.csdn.net/codename_cys/article/details/139905820 浏览次数:0次
  • Leetcode 3192. Minimum Operations to Make Binary Array Elements Equal to One II
    • 1. 解题思路
    • 2. 代码实现
  • 题目链接:3192. Minimum Operations to Make Binary Array Elements Equal to One II

1. 解题思路

这一题的话就是一个动态规划,我们使用两个数组one和zero分别记录将所有元素变为1或者0时所需要的操作数目,具体来说,one[i]表示将从第i个元素开始全变为1所需要的操作次数,同理,zero[i]表示将从第i个元素开始全变为0所需要的操作次数。

此时即有递推关系:

  • 如果第i个元素为0
    • one[i] = 1 + zero[i+1]
    • zero[i] = zero[i+1]
  • 如果第i个元素为1
    • one[i] = one[i+1]
    • zero[i] = 1 + one[i+1]

我们返回one[0]即为目标答案。

2. 代码实现

给出python代码实现如下:

class Solution:def minOperations(self, nums: List[int]) -> int:n = len(nums)zero = [0 for _ in range(n+1)]one = [0 for _ in range(n+1)]for i in range(n-1, -1, -1):if nums[i] == 0:zero[i] = zero[i+1]one[i] = 1 + zero[i+1]else:zero[i] = 1 + one[i+1]one[i] = one[i+1]return one[0]

提交代码评测得到:耗时1160ms,占用内存23.2MB。

关键字:Leetcode 3192. Minimum Operations to Make Binary Array Elements Equal to One II

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: