Day 30:100346. 使二进制数组全部等于1的最小操作次数Ⅱ

Leetcode 100346. 使二进制数组全部等于1的最小操作次数Ⅱ

给你一个二进制数组 nums 。
你可以对数组执行以下操作 任意 次(也可以 0 次):

  • 选择数组中 任意 一个下标 i ,并将从下标 i 开始一直到数组末尾 所有 元素 反转

反转 一个元素指的是将它的值从 0 变 1 ,或者从 1 变 0 。
请你返回将 nums 中所有元素变为 1 的 最少 操作次数。

image.png

此题与 Leetcode 100344. 使二进制数组全部等于1的最小操作次数Ⅰ 类似,前者是从下标 i开始连续三个元素反转,此题是从下标i开始一直到数组末尾所有元素反转。
因此不能使用前者的算法:每次遇到 0 的时候,遍历后续所有元素,对其进行反转,这是非常浪费时间的。改进一下:

  • 当前元素为 1
    • 已经反转了偶数次,因此经过偶数次反转,值仍为 1,所以不用再反转。
    • 已经反转了奇数次,它的值已经变为 0,因此要反转,反转次数加一。
  • 当前元素为 0
    • 已经反转了偶数次,它还是 0,因此要反转,反转次数加一。
    • 已经反转了奇数次,它反转成了 1,因此不用再反转。

完整代码

class Solution {public int minOperations(int[] nums) {int res = 0;int n = nums.length;for (int i = 0; i < n; i++) {if (nums[i] == 1) {if (res % 2 != 0) res++;} else {if (res % 2 != 1) res++;}}return res;}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/858111.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Kafka 集群元数据之Zookeeper存储介绍

Kafka 集群元数据之Zookeeper存储介绍? 在 Kafka 集群中,ZooKeeper 存储了大量的元数据,管理和协调 Kafka 的各个组件。以下是 ZooKeeper 中创建 的主要信息及其作用: 1. Broker 信息 路径: /brokers/ids/[broker_id]/brokers/topics/[topic_name]/brokers/seqid作用:…

平面设计软件PS/AI/ID/CDR怎么选怎么下载(附教程)

随着设计行业的普遍化&#xff0c;平面设计软件也越来越多且功能越来越强大。平面设计软件需要在电脑上运行使用&#xff0c;来进行平面画面、平面文字的设计工作。如大家所了解的&#xff0c;Adobe Photoshop、Adobe Illustrator、CorelDRAW、Adobe InDesign是平面设计中最常用…

Kubernetes相关生态

1、Prometheus、Metrics Server与Kubernetes监控体系 简介&#xff1a; Prometheus 项目与 Kubernetes 项目一样&#xff0c;也来自于 Google 的 Borg 体系&#xff0c;它的原型系统&#xff0c;叫作 BorgMon&#xff0c;是一个几乎与 Borg 同时诞生的内部监控系统 Pro…

数学概念之集合

简介 集合(Set)是一种数学概念,在编程中也被广泛使用。它可以被定义为一个无序、不重复的元素的集合。下面我们更详细地来介绍集合: 什么是集合? 集合是由一些确定的、互不相同的元素组成的整体。集合中的元素是无序的,即元素之间没有先后关系。集合中的元素是唯一的,即不能…

MQTT服务器/MQTT_C#客户端/Websoket连MQTT

1 . 搭建MQTT服务器 找到上传中的 emqx-5.3.2-windows-amd64 打开bin如下: 链接: emqx-5.3.2-windows-amd64 如果安装失败 在上传中找到链接: VC_redist.x64.exe 安装。 正确后在浏览器输入 http://127.0.0.1:18083 会有如下mqtt服务端管理页面: 进入客户端认证,创建一个…

IDEA Plugins中搜索不到插件解决办法

IDEA中搜不到插件有三种解决方案&#xff1a; 设置HTTP选项&#xff0c;可以通过File->Settings->Plugins->⚙->HTTP Proxy Settings进行设置 具体可参考这篇博文&#xff1a;IDEA Plugins中搜索不到插件解决办法本地安装&#xff0c;ile->Settings->Plugin…

机器学习数学原理专题——线性分类模型:损失函数推导新视角——交叉熵

目录 二、从回归到线性分类模型&#xff1a;分类 3.分类模型损失函数推导——极大似然估计法 &#xff08;1&#xff09;二分类损失函数——极大似然估计 &#xff08;2&#xff09;多分类损失函数——极大似然估计 4.模型损失函数推导新视角——交叉熵 &#xff08;1&#x…

安徽理工大学2计算机考研情况,招收计算机专业的学院和联培都不少!

安徽理工大学&#xff08;Anhui University of Science and Technology&#xff09;&#xff0c;位于淮南市&#xff0c;是安徽省和应急管理部共建高校&#xff0c;安徽省高等教育振兴计划“地方特色高水平大学”建设高校&#xff0c;安徽省高峰学科建设计划特别支持高校&#…

react实现导航守卫

React本身并没有像Vue那样的直接名为“导航守卫”的概念&#xff0c;但在React Router中&#xff0c;我们可以通过特定的方法和技术来模拟和实现类似的功能。以下是对React Router中模拟导航守卫的详解&#xff1a; 1. 导航守卫的概念 导航守卫&#xff1a;在路由切换之前执行…

C#中[StructLayout(LayoutKind.Sequential, Pack = 1)]解释

在C#中&#xff0c;[StructLayout(LayoutKind.Sequential, Pack 1)]属性用于控制结构体或类的字段在内存中的布局。让我们分解一下这个属性的每个部分意味着什么&#xff1a; StructLayout: 这个属性指定结构体或类字段在内存中的排列方式。LayoutKind.Sequential表示字段应该…

国产测温速度快且功耗低的温度传感芯片MY18E20可Pin-Pin替换DS18B20

MY18E20是一款国产高精度可编程的数字模拟混合信号温度传感芯片&#xff1b;感温原理基于CMOS半导体PN节温度与带隙电压的特性关系&#xff0c;经过小信号放大、模数转换、数字校准补偿后&#xff0c;数字总线输出&#xff0c;具有精度高、一致性好、测温快、功耗低、可编程配置…

Python+Pytest+Yaml+Request+Allure接口自动化测试框架详解

PythonPytestYamlAllure整体框架目录&#xff08;源代码请等下篇&#xff09; 框架详解 common:公共方法包 –get_path.py:获取文件路径方法 –logger_util.py:输出日志方法 –parameters_until.py&#xff1a;传参方式方法封装 –requests_util.py&#xff1a;请求方式方法封…

Web渗透-文件包含漏洞

一、简介 在程序员开发过程中&#xff0c;通常会把可重复使用的函数写到单个文件中&#xff0c;在使用某些函数时&#xff0c;直接调用此文件&#xff0c;无需在此编写&#xff0c;这种调用文件的过程一般被称为文件包含。随着网站业务的需求&#xff0c;程序开发人员一般希望…

什么是深度神经网络?与深度学习、机器学习、人工智能的关系是什么?

什么是深度神经网络&#xff1f;与深度学习、机器学习、人工智能的关系是什么&#xff1f; &#x1f916;什么是深度神经网络&#xff1f;与深度学习、机器学习、人工智能的关系是什么&#xff1f;摘要引言正文内容1. 什么是深度神经网络&#xff1f;&#x1f9e0;1.1 深度神经…

如何占领消费者科技心智?这家中国企业给出标准答案

品牌的价值是什么&#xff1f; 沃伦巴菲特和查理芒格曾提出过著名的“护城河”模型&#xff0c;将品牌作为一家公司构建护城河的基本要素之一。 按照巴菲特的说法&#xff1a;“你会试着去创建一个跟迪士尼竞争的品牌吗&#xff1f;可口可乐这个品牌让人联想到世界各地畅饮可…

Cadence 16.6与17.4个人学习版推荐

一. 简介与下载 Cadence个人学习版是基于Cadence官方发行的安装包做了适当精简和优化的二次打包版本&#xff0c;包括了Cpature原理图设计、PSpice 电路仿真以及Allegro PCB设计等以电子产品设计为主的主要功能&#xff0c;能满足绝大部分硬件工程师的使用需求。 学习版预先已…

nacos 简述 安装运行

一、下载 官网:Redirecting to: https://nacos.io/ 文档:Nacos 快速开始 github地址:GitHub - alibaba/nacos: an easy-to-use dynamic service discovery, configuration and service management platform for building cloud native applications. 下载nacos server(tips:也…

【Gradio】Custom Components | Gradio组件关键概念 后端

Gradio组件关键概念 在本节中&#xff0c;我们将讨论Gradio中组件的一些重要概念。在开发自己的组件时&#xff0c;理解这些概念非常重要。否则&#xff0c;您的组件可能会与其他Gradio组件的行为大不相同&#xff01; ✍️ 提示&#xff1a;如果你熟悉Gradio库的内部机制&…

达梦8 通过日志解释数据守护系统的关停顺序

关闭守护系统时&#xff0c;必须按照一定的顺序来关闭守护进程和数据库实例。特别是自动切换模式&#xff0c;如果退出守护进程或主备库的顺序不正确&#xff0c;可能会引起主备切换&#xff0c;甚至造成守护进程组分裂。 官方推荐通过在监视器执行stop group命令关闭守护系统…

ALOS 12.5m DEM下载

1、下载地址 阿拉斯加遥感数据下载地址&#xff1a;https://search.asf.alaska.edu/ &#xff1b; 数据详情描述见地址&#xff1a;https://asf.alaska.edu/datasets/daac/alos-palsar-radiometric-terrain-correction/ &#xff1b; 2、下载步骤 2.1、勾绘研究区 在网站中…