力扣随机一题 位运算/滑动窗口/数组

  • 博客主页:誓则盟约
  • 系列专栏:IT竞赛 专栏
  • 关注博主,后期持续更新系列文章
  • 如果有错误感谢请大家批评指出,及时修改
  • 感谢大家点赞👍收藏⭐评论✍ 

3191.使二进制数组全部等于1的最少操作次数I【中等

题目:

给你一个二进制数组 nums 。

你可以对数组执行以下操作 任意 次(也可以 0 次):

  • 选择数组中 任意连续 3 个元素,并将它们 全部反转 。

反转 一个元素指的是将它的值从 0 变 1 ,或者从 1 变 0 。

请你返回将 nums 中所有元素变为 1 的 最少 操作次数。如果无法全部变成 1 ,返回 -1 。

示例 1:

输入:nums = [0,1,1,1,0,0]

输出:3

解释:
我们可以执行以下操作:

  • 选择下标为 0 ,1 和 2 的元素并反转,得到 nums = [1,0,0,1,0,0] 。
  • 选择下标为 1 ,2 和 3 的元素并反转,得到 nums = [1,1,1,0,0,0] 。
  • 选择下标为 3 ,4 和 5 的元素并反转,得到 nums = [1,1,1,1,1,1] 。

示例 2:

输入:nums = [0,1,1,1]

输出:-1

解释:
无法将所有元素都变为 1 。

提示:

  • 3 <= nums.length <= 10**5
  • 0 <= nums[i] <= 1

分析问题:

        题目保证数组内的数要么0要么1,所以简单来说,通过一个循环从列表的前部分开始遍历。如果当前元素为 0 ,则对其后面的两个元素进行异或操作(将值取反),并将操作次数加 1 。循环结束后,检查列表的最后两个元素是否都不为 0 。如果是,则返回操作次数;否则,返回 -1 

代码实现:

class Solution:
    def minOperations(self, nums: List[int]) -> int:
        ans = 0
        for i in range(len(nums) - 2):
            if nums[i] == 0:
                nums[i + 1] ^= 1
                nums[i + 2] ^= 1
                ans += 1
        return ans if nums[-2] and nums[-1] else -1


3190.使所有元素都可以被3整数的最少操作数【简单】 

 题目描述:

给你一个整数数组 nums 。一次操作中,你可以将 nums 中的 任意 一个元素增加或者减少 1 。

请你返回将 nums 中所有元素都可以被 3 整除的 最少 操作次数。

示例 1:

输入:nums = [1,2,3,4]

输出:3

解释:

通过以下 3 个操作,数组中的所有元素都可以被 3 整除:

  • 将 1 减少 1 。
  • 将 2 增加 1 。
  • 将 4 减少 1 。

示例 2:

输入:nums = [3,6,9]

输出:0

提示:

  • 1 <= nums.length <= 50
  • 1 <= nums[i] <= 50 

分析问题:

         数据量只有50,很小,一边遍历过去计数,计算不可以被3整除的元素的个数,这个个数就是最终答案,因为一次只能修改一个值,而一个值只需要被修改一次。

代码实现:

class Solution:
    def minimumOperations(self, nums: List[int]) -> int:
        v=0
        for i in nums:
            if i%3!=0: v+=1
        return v

 


总结:

详解

  1. 定义变量 ans 用于记录操作次数,初始值为 0 。
  2. 通过一个循环遍历列表 nums ,从索引 0 到 len(nums) - 2 。
  3. 在每次循环中,如果当前元素 nums[i] 为 0 ,则对其后面的两个元素 nums[i + 1] 和 nums[i + 2] 进行异或操作(将值取反),并将操作次数 ans 加 1 。
  4. 循环结束后,检查列表的最后两个元素 nums[-2] 和 nums[-1] 是否都不为 0 。
  5. 如果是,则返回操作次数 ans ;否则,返回 -1 。

考点

  1. 对列表的遍历和操作。
  2. 异或操作的理解和应用。
  3. 条件判断和逻辑处理。

收获

  1. 加深了对列表操作的理解,包括如何遍历列表并根据条件进行修改。
  2. 掌握了异或操作的特性及其在解决问题中的应用。
  3. 提高了根据问题要求进行逻辑判断和处理的能力。
  4. 学会了如何根据特定的目标设计算法并通过代码实现。

“若能避开猛烈的欢喜,自然不会有悲痛来袭。”——《人间失格》 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

C语言力扣刷题7——删除排序链表中的重复元素 II——[快慢双指针法]

力扣刷题7——删除排序链表中的重复元素 II——[快慢双指针法] 一、博客声明二、题目描述三、解题思路1、思路说明 四、解题代码&#xff08;附注释&#xff09; 一、博客声明 找工作逃不过刷题&#xff0c;为了更好的督促自己学习以及理解力扣大佬们的解题思路&#xff0c;开辟…

STM32将外部SDRAM空间作为系统堆(Heap)空间

概述 stm32可以外扩很大的sram&#xff0c;常见外部sram的初始化函数一般是c语言写的&#xff0c;默认写在main函数里面。stm32初始化首先进入汇编代码startup_stm32f429xx.s&#xff0c;在汇编代码中Reset_Handler&#xff08;复位中断服务程序&#xff09;里面先调用了Syste…

光明致优尊耀呈现“柏林爱乐在上海”音乐会正式开幕,奏响盛夏狂热乐章

2024年6月26日&#xff0c;由光明致优尊耀呈现的中国上海国际艺术节特别项目“柏林爱乐在上海”音乐会正式开幕。暌违七年&#xff0c;世界顶级交响乐团——柏林爱乐乐团再度访沪&#xff0c;在首席指挥基里尔别特连科率领下&#xff0c;正式在中国上海国际艺术节登台演出&…

Talk|CityU 助理教授马佳葳: CVPR 2024, 基于多模态理解的混合数据专家模型

本期为TechBeat人工智能社区第604期线上Talk。 北京时间6月27日(周四)20:00&#xff0c;香港城市大学助理教授—马佳葳的Talk已经准时在TechBeat人工智能社区开播&#xff01; 他与大家分享的主题是: “基于多模态理解的混合数据专家模型”&#xff0c;他向大家介绍了混合数据专…

x86 平台实现一个原子加法操作

1&#xff0c;先上代码 #include <iostream> #include <omp.h>int atomicAdd(int* ptr, int value) {int result;asm volatile("lock xaddl %0, %1\n": "r" (result), "m" (*ptr): "0" (value), "m" (*ptr): &…

程序猿大战Python——Python与MySQL交互三

SQL注入 目标&#xff1a;了解什么是SQL注入&#xff1f; SQL注入指的是&#xff1a;恶意篡改或注入SQL条件。 当开发者的数据条件若被恶意篡改&#xff0c;那就达不到预期的查询效果。 为了了解SQL注入是怎么回事&#xff1f;通过一个案例来分析。 例如&#xff0c;使用命令…

综合布线实训室建设可行性报告

1、 建设综合布线实训室的目的和意义 1.1 响应国家职业教育政策 在国家对职业教育的高度重视和政策支持下&#xff0c;综合布线实训室的建设不仅是对国家教育方针的积极响应&#xff0c;也是对技术教育改革的有力推动。通过这一平台&#xff0c;我们旨在培育出一批具有强烈实…

ChatGPT智能对话绘画系统 带完整的安装源代码包以及搭建教程

系统概述 ChatGPT 智能对话绘画系统是一款集智能语言处理和绘画创作于一体的综合性系统。它利用了深度学习和自然语言处理技术&#xff0c;能够理解用户的意图和需求&#xff0c;并通过与用户的交互&#xff0c;生成富有创意的绘画作品。该系统的核心是一个强大的人工智能模型…

高考后的抉择:专业优先还是学校优先?

随着2024年高考的帷幕落下&#xff0c;高考生们面临的一个重要抉择再度浮上心头&#xff1a;在分数受限的情况下&#xff0c;是选择一个心仪的专业&#xff0c;还是选择一个知名度更高的学校&#xff1f;这是一个困扰了众多考生和家长的长期难题。在这个关键的时刻&#xff0c;…

“一团乱麻”到底什么是烟雾病呢?

当我们听到“烟雾病”这个名字时&#xff0c;可能会联想到与吸烟有关的疾病&#xff0c;但实际上&#xff0c;这是一种与吸烟毫无关系的罕见脑血管疾病。它的名字来源于在脑血管造影中&#xff0c;病变的血管网看起来像一团乱麻&#xff0c;又似吸烟时吐出的烟雾。 烟雾病&…

uniapp, ‍[⁠TypeError⁠]‍ “Failed to fetch dynamically imported module“ 报错解决思路

文章目录 1. 背景2. 报错3. 解决思路4. 思考参考1. 背景 最近基于uniapp开发一款设备参数调试的APP软件,在使用第三方插件的过程中,出现下面的报错。 2. 报错 [plugin:vite:import-analysis] Cannot find module ‘D:/leaning/uniapp/demo/jk-uts-udp示例/uni_modules/uts-…

基于FreeRTOS+STM32CubeMX+LCD1602+MCP3001(SPI接口)的ADC转换器Proteus仿真

一、仿真原理图: 二、仿真效果: 三、STM32CubeMX配置: 1)、USART配置: 2)、SPI配置: 四、软件部分: 1)、时钟、SPI、USART初始化部分: /** * @brief System Clock Configuration * @retval None */ void SystemClock_Config(void) { RCC_OscInitTypeDef RC…

Docker-Compose一键部署项目

Docker-Compose一键部署项目 目录 Docker-Compose一键部署项目介绍部署Django项目项目目录结构 docker-compose.ymlnginx的default.conf文件后端Dockerfile文件mysql.env一键部署DNS域名解析引起的跨域问题 介绍 Docker Compose 是一个用于定义和运行多容器 Docker 应用程序的…

网络世界的“握手”与“告别”:揭秘TCP的三次握手与四次挥手

在网络世界中&#xff0c;数据的传输就像是一场精心编排的舞蹈&#xff0c;而TCP&#xff08;Transmission Control Protocol&#xff0c;传输控制协议&#xff09;则是这场舞蹈的指挥家。它确保数据在网络中的传输既稳定又可靠。那么&#xff0c;在这背后&#xff0c;TCP是如何…

红黑树原理 部分模拟实现

1.红黑树的概念及性质 红黑树的概念 红黑树&#xff0c;是一种二叉搜索树&#xff0c;但在每个结点上增加一个存储位表示结点的颜色&#xff0c;可以是Red或Black。 通过对任何一条从根到叶子的路径上各个结点着色方式的限制&#xff0c;红黑树确保没有一条路径会比其他路径长出…

Redis和PHP的Bitmap于二进制串的相互转换

Redis和PHP的Bitmap于二进制串的相互转换 场景 错题集的存储&#xff0c;需要有正确的题号id集合&#xff0c;错误的题号id集合&#xff0c;两者并集后在全量题的集合中取反就是未答题号id 选型 基于场景的数据结构设计&#xff0c;有试过列表等&#xff0c;测试结果&#xff1…

python笔记----少儿编程课程

第1课&#xff1a; 认识新朋友-python 知识点&#xff1a; 1、在英文状态下编写Python语句。 2、内置函数print()将结果输出到标准的控制台上&#xff0c;它的基本语法格式如下&#xff1a; print("即将输出的内容") #输出的内容要用引号引起来&#xff0c;可…

【Ant Design Vue的更新日志】

&#x1f308;个人主页: 程序员不想敲代码啊 &#x1f3c6;CSDN优质创作者&#xff0c;CSDN实力新星&#xff0c;CSDN博客专家 &#x1f44d;点赞⭐评论⭐收藏 &#x1f91d;希望本文对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出指正&#xff0c;让我们共…

SAP 创建BP 提示 CVI_MAPPING 011

原因编号不是外部给号的问题

腾讯云TI平台的大模型精调解决方案

腾讯云TI平台的大模型精调解决方案 随着人工智能和大数据技术的快速发展&#xff0c;大模型在各行各业的应用日益广泛。然而&#xff0c;大规模模型的训练和部署面临着诸多挑战&#xff0c;包括训练资源的高效利用、模型训练的稳定性和国产化适配需求。腾讯云TI平台凭借其强大…