Leetcode3192. 使二进制数组全部等于 1 的最少操作次数 II

二进制转化成十进制 数制转换 输入一个 4 位二进制数,将其转换为十进制数输出。 例如:从键盘输入 1101 所以,程序应输出 13 #include<bits/stdc++.h> using namespace std; int ss(int x, int n) { int sum = 1; while(n--) { sum = sum * 2; } return sum * x; } int main() { int x; int 阅读详情

Every day a Leetcode

题目来源:3192. 使二进制数组全部等于 1 的最少操作次数 II

解法1:遍历

由于 nums[i] 会被其左侧元素的操作影响,所以我们先从最左边的 nums[0] 开始思考。

分类讨论:

  • 如果 nums[0]=1,无需反转,问题变成剩下 n−1 个数如何操作。接下来考虑 nums[1]。
  • 如果 nums[0]=0,反转次数加一,问题变成剩下 n−1 个数(在修改次数是奇数的情况下)如何操作。接下来考虑 nums[1]。

对后续元素来说,由于反转偶数次等于没反转,所以只需考虑反转次数的奇偶性。

一般地,设反转次数的奇偶性为 k,分类讨论:

  • 如果 nums[i]≠k,无需反转,接下来考虑 nums[i+1]。
  • 如果 nums[i]=k,反转次数加一,接下来考虑 nums[i+1]。

代码:

/*
 * @lc app=leetcode.cn id=3192 lang=cpp
 *
 * [3192] 使二进制数组全部等于 1 的最少操作次数 II
 */

// @lc code=start
class Solution
{
public:
    int minOperations(vector<int> &nums)
    {
        int n = nums.size();
        int ans = 0;
        for (int i = 0; i < n; i++)
        {
            if (nums[i] == 1 && ans % 2 == 1)
                ans++;
            if (nums[i] == 0 && ans % 2 == 0)
                ans++;
        }
        return ans;
    }
};
// @lc code=end

结果:

在这里插入图片描述

复杂度分析:

时间复杂度:O(n),其中 n 是数组 nums 的长度。

空间复杂度:O(1)。

python——模拟砍价 类型:随机数。 阅读详情

相关推荐

深度学习 load_data_fashion_mnist

pytorch 中报错:PermissionError: [WinError 5] 拒绝访问。: '…/data’ 在学习李沐大神动手学习深度学习卷积神经网络章节中,调用d2l包中load_data_fashion_mnist报错,这可能是***权限***的问题。 batch_size = 256 train_iter, test_iter = d2l.load_data_fashion_mnist(batch_size,batch_size) 我的解决方法是 重新定义一下 load_data_fashi

纸上得来终觉浅,绝知此事要躬行 9147

LeetCode 100346. 使二进制数组全部等于 1 的最少操作次数 II

更多题解尽在每日更新。组队打卡,更多解法等你一起来参与哦!,难度。

m0_64381458的博客 962

避坑指南:Qwen2.5-VL图片预处理中常见的5个尺寸错误

本文深入解析了Qwen2.5-VL模型在图片预处理环节中开发者最常遇到的五个尺寸错误,包括动态分辨率对齐、宽高比超标、像素数限制等问题。文章结合源码解读,详细剖析了`process_vision_info`函数和`resize`逻辑,并提供了具体的排查流程图与参数设置建议,旨在帮助开发者构建健壮的预处理流水线,有效规避显存溢出与推理失败的风险。

weixin_29290379的博客 175

leetcode 第133场双周赛 100333.统计逆序对的数目【计数dp/滚动数组/前缀和优化】

逆序对 计数dp 滚动数组 前缀后优化

qq_33969563的博客 1188

Allegro PCB设计实战:5分钟搞定DDR信号线的Match Group等长规则设置

本文详细介绍了在Allegro PCB设计中,如何快速为DDR信号线设置Match Group等长规则。通过实战演练,解析了从理解相对传输延迟原理、在规则管理器中创建Match Group,到设置合理容差和利用动态绕线指示的全流程,帮助工程师在5分钟内高效完成高速信号时序约束,提升设计可靠性与效率。

gg901的博客 1052

强化学习环境Gym库的介绍

Gym是一个用于进行强化学习实验的开源库,它提供了一个仿真环境,内置了多种仿真游戏,例如出租车游戏、悬崖游戏等,不同的游戏所用的网格、规则、奖励(reward)都不一样,适合为强化学习做测试。(1) 多种环境:Gym库内置了上百种实验环境,包括算法环境、简单文本环境、经典控制环境、Atari游戏环境、MuJoCo环境和机械控制环境等。(2) Gym提供多种环境供我们使用,这里以一个简单的CartPole-v0为例,首先导入gym库,然后创建一个CartPole-v0环境,通过调用gym.make方法实现。

ahah12345678的博客 2147

补码加法运算溢出判断

补码加法运算溢出判断三种方法: [方法一] Xf、Yf分别两个数符号位,Zf为运算结果符号位。 当Xf =Yf =0(两数同为正),而Zf=1(结果为负)时,负溢出; 当出现Xf =Yf =1(两数同为负),而Zf=0(结果为正),正溢出. [方法二] Cs表示符号位的进位,Cp表示最高数值位进位,⊕表示异或。 若 Cs⊕Cp =0 ,无溢出; 若 Cs⊕Cp =1 ,有溢出。 [方法三] 用变形

u011225147的专栏 2万+

Python爬虫:抓取外卖平台餐厅菜单、价格与评价数据

美团外卖:国内领先的外卖平台之一,提供餐饮外卖、超市配送等服务。饿了么:另一大主流外卖平台,覆盖广泛的餐饮品类。等:国际性的外卖平台。在本文中,我们将以美团外卖为例,展示如何抓取餐厅的菜单、价格和评价等数据。我们会使用Python的爬虫库,如Scrapy和Selenium,来解决抓取任务。本文详细介绍了如何使用Python爬虫抓取外卖平台上的餐厅菜单、价格、评价等信息。我们展示了如何使用Scrapy和Selenium抓取静态与动态网页数据,如何清洗和存储数据,并讨论了如何应对外卖平台的反爬虫机制。

2201_76125261的博客 1498

.NET 进制转换

  二进制转化为十进制 方法:二进制数从低到高(即从右到左)计算,第零位的值是2的0次方,第一位是2的1次方,第二位的值是2的2次方,一次递增下去,把最后的结果相加的值就是十进制的值了。 列:将二进制的(101011)B转换为十进制的步骤如下 1:一位  1*2^1=2; 2: 二位   0*2^2=0; 八进制 转化 十进制     方法:八进制数从低位到高位(即从右往左)计算,...

qq_36074088的博客 581

海康Visionmaster-通讯管理:使用 Modbus TCP 通讯 协议与流程交互

海康Visionmaster-通讯管理:使用 Modbus TCP 通讯 协议与流程交互

视觉人机器视觉的博客 9170

Android15音频进阶之4种调试线程死锁利器(八十九)

本篇目的:Android15音频进阶之4种调试线程死锁利器对于开发者来说,最令人头疼的,莫过于多线程交互出问题的时候,我们应该从哪里找突破口呢?下面来介绍一下调试Android音频中线程死锁的四种方案线程死锁是并发编程中常见的问题之一,它指的是在多个线程竞争资源的过程中,由于相互等待对方持有的资源而无法继续执行,从而导致所有线程都无法向前推进的现象。死锁不仅会导致系统性能严重下降,甚至可能导致整个系统崩溃。线程死锁的产生有四个必要条件:互斥条件:资源不能被多个线程共同使用,只能由一个线程独占。

Android系统攻城狮 1996

力扣(leetcode)每日一题 3192 使二进制数组全部等于 1 的最少操作次数 II

这里选择的是最稳定的写法,从右到左的动态规划,保证能通过。但是这个题目其实还是没有什么特别的,无非是从左边到右边,遇到了不一致的就进行反转。

ganjiee0007的博客 368

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

LeetCode 3192.使二进制数组全部等于 1 的最少操作次数 II:位运算模拟

LeetCode 3192.使二进制数组全部等于 1 的最少操作次数 II:位运算模拟 给你一个二进制数组 nums 。 你可以对数组执行以下操作 任意 次(也可以 0 次): 选择数组中 任意 一个下标 i ,并将从下标 i 开始一直到数组末尾 所有 元素 反转 。 反转 一个元素指的是将它的值从 0 变 1 ,或者从 1 变 0 。 请你返回将 nums 中所有元素变为 1 的 最少 操作次数。

<font color="Pink">Tisfy的博客</font> 1247

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

(LeetCode) 3192. 使二进制数组全部等于 1 的最少操作次数 II(模拟)

【代码】(LeetCode) 3192. 使二进制数组全部等于 1 的最少操作次数 II(模拟)

记录一些刷过的题并分享学习心得 395

leetcode 3192. 使二进制数组全部等于 1 的最少操作次数 II 中等

一个元素指的是将它的值从 0 变 1 ,或者从 1 变 0。你可以对数组执行以下操作。中所有元素变为 1 的。

2401_88085478的博客 481

【从零开始的LeetCode-算法】3192. 使二进制数组全部等于 1 的最少操作次数 II

一个元素指的是将它的值从 0 变 1 ,或者从 1 变 0。你可以对数组执行以下操作。中所有元素变为 1 的。

九圣残炎的编程博客 377

Leetcode 第 133 场双周赛题解

Leetcode 第 133 场双周赛题解

ProgramNovice的博客 1192

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

codename_cys的博客 631

leetcode解题记录-每日一题

一层循环,从头开始遍历,若当前数字为0,则将该数字和后面两个数字反转;若为1,则跳过。最后要判断结尾的两个数组是否为1。

随缘不强求,反正也求不来 1259

力扣10.19

01背包,将每个数的价值看作是1,背包容量为target,令dp[i][j]为前i个数容量正好为j是的长度,这道题和普通01背包不同就在于需要正好是j,因此需要将其他的不合法状态设置为一个极小值,其他就按照正常01背包套路来写,然后可以利用轮动数组优化一下。考虑10110这个元素,要使下标为[2:]的元素均为1,必须得先把[3:]的元素变为0,因此考虑从尾向头遍历,若当前位置为1且不是首部,则反转它和后面的,若当前位置为0,也进行翻转。反转 一个元素指的是将它的值从 0 变 1 ,或者从 1 变 0。

qq_40052678的博客 1175

Leetcode - 133双周赛

leetcode - 133周赛,主要知识点:dfs+记忆化(难点状态定义)

m0_74859835的博客 951

力扣OJ(3001-3300)

除 11 以外,区间 [1, 20] 内的所有数字的各位数字都不同。除 11 以外,区间 [1, 20] 内的所有数字的各位数字都不同。的节点是一对,编号为 2 和 3 的节点是一对,以此类推。(20,5) -> 因为 20 > 5,偶数队得分。奇数队得 2 分,偶数队得 1 分,奇数队得分更高。(4,7) -> 因为 4 < 7,奇数队得分。(2,5) -> 因为 2 < 5,奇数队得分。此链表中有 2 对。(4,5) -> 因为 4 < 5,奇数队得分。(2,1) -> 因为 2 > 1,偶数队得分。

nameofcsdn的博客 1287

LeetCode 每日一题 2024/10/14-2024/10/20

记录了初步解题思路 以及本地实现代码;并不一定为最优 也希望大家能一起探讨 一起进步

AlphaTao的博客 536

官方题解参考与分层复现方法论:把「参考答案」变成可复现资产

本文完整复盘安全实战「官方参考与分层复现方法论」:从授权测试环境切入,围绕信息收集与漏洞验证逐层展开,最终完成漏洞验证与影响面确认。文中给出完整复现步骤与验证方法,可作为安全工程师的实战参考。

kingx3的博客 21

【FreeRTOS源码学习笔记】任务创建

【FreeRTOS源码学习笔记】任务创建

2502_90565057的博客 456

LeetCode Hot 100 二叉树专题(二)3 题(Java)

本篇文章共 3 题:543. 二叉树的直径、102. 二叉树的层序遍历、108. 将有序数组转换为二叉搜索树。 每道题都统一按「① 题目分析 & 解题思路 → ② 常见解法(附代码)及讲解 → ③ 知识点总结」的顺序组织;代码使用 Java 编写,节点定义沿用 LeetCode 默认的 TreeNode。

2401_88612756的博客 352
上一篇: Leetcode3191. 使二进制数组全部等于 1 的最少操作次数 I
下一篇: Audio Unit | 使用特定的音频单元
UestcXiye
博客等级 码龄8年 9027粉丝 1306原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

UestcXiye

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值