当前位置: 首页 > news >正文

LeetCode 第407场周赛个人题解

目录

100372. 使两个整数相等的位更改次数

原题链接

思路分析

AC代码

100335. 字符串元音游戏

原题链接

思路分析

AC代码

100360. 将 1 移动到末尾的最大操作次数

原题链接

思路分析

AC代码

100329. 使数组等于目标数组所需的最少操作次数

原题链接

思路分析

AC代码


100372. 使两个整数相等的位更改次数

原题链接

100372. 使两个整数相等的位更改次数

思路分析

考虑不能存在某位k是1而n不是1,所以k必须是n的子集

n & k != k 就返回-1

否则返回 n ^ k 1 的 个数

时间复杂度:O(1)

AC代码

class Solution:def minChanges(self, n: int, k: int) -> int:if (n & k) != k:return -1return (n ^ k).bit_count()

100335. 字符串元音游戏

原题链接

100335. 字符串元音游戏

思路分析

考虑如果有奇数个元音,那么Alice全拿完就赢了

如果有偶数个元音,记为cnt,那么Alice拿包含cnt - 1个元音的串,照样赢

于是得出:只要有元音就赢

时间复杂度:O(N)

AC代码

class Solution:def doesAliceWin(self, s: str) -> bool:st = set(['a', 'e', 'i', 'o', 'u'])return True if sum(1 for x in s if x in st) else False

100360. 将 1 移动到末尾的最大操作次数

原题链接

100360. 将 1 移动到末尾的最大操作次数

思路分析

赛时写的分组循环,不好看,赛后改了下

我们考虑优先移动左边的1,如果优先移动右边的1那么所有左边的1都只能移动1次

那么我们直接遍历,每遇到一组连续0,前面1的贡献都+1

时间复杂度:O(N)

AC代码

class Solution:def maxOperations(self, s: str) -> int:res = c1 = 0n = len(s)        for i, x in enumerate(s):if x == '1':c1 += 1elif i and s[i - 1] == '1':res += c1return res

100329. 使数组等于目标数组所需的最少操作次数

原题链接

100329. 使数组等于目标数组所需的最少操作次数

思路分析

典中典的题,学差分的时候都会做这个类型的题目吧……

其实就是差分的一个结论:对于一个数组我们要将数组中每个数字变相等(每次可操作子数组-1/+1),最少操作次数为其差分数组从第二个数开始 的正数和 与 负数绝对值和 中大的那一个

为什么呢?

我们考虑原数组变相等 等价于 差分数组除了第一个数外全变为0,而区间操作对应差分数组中左边一个数+1 / -1,右边一个数执行相反操作

那么我们最优方案就是差分数组先正负抵消,再加上剩下的数字绝对值和

由于最后剩下的一定是正数或者负数,所以我们等价为 正数绝对值和 与 负数绝对值和 中 大的那一个

换到本题,等价于 nums - target 的数组全变0

等价于 nums - target 的差分数组全变0

和前面结论不同的是,结论是数组变相等,没有指定具体值,这里指定了0,所以就是整个差分数组的正数和 与 负数和的绝对值 中取大的那一个

时间复杂度:O(N)

AC代码

class Solution:def minimumOperations(self, nums: List[int], target: List[int]) -> int:n = len(nums)diff = [nums[i] - target[i] for i in range(n)]tmp = [nums[i] - target[i] for i in range(n)]for i in range(1, n):diff[i] = tmp[i] - tmp[i - 1]s1 = s2 = 0for x in diff:if x > 0:s1 += xelse:s2 -= xreturn max(s1, s2)

相关文章:

LeetCode 第407场周赛个人题解

目录 100372. 使两个整数相等的位更改次数 原题链接 思路分析 AC代码 100335. 字符串元音游戏 原题链接 思路分析 AC代码 100360. 将 1 移动到末尾的最大操作次数 原题链接 思路分析 AC代码 100329. 使数组等于目标数组所需的最少操作次数 原题链接 思路分析 A…...

使用Django框架实现音频上传功能

数据库设计(models.py) class Music(models.Model):""" 音乐 """name models.CharField(verbose_name"音乐名字", max_length32)singer models.CharField(verbose_name"歌手", max_length32)# 本质…...

[路由器]IP-MAC的绑定与取消

背景:当公司的网络不想与外部人员进行共享,可以在路由器页面配置IP-MAC的绑定,让公司内部人员的手机和电脑的mac,才能接入到公司。第一步:在ARP防护中,启动IP-MAC绑定选项,必须启动仅允许IP-MAC…...

Idea配置远程开发

Idea配置远程开发 本篇博客介绍使用idea通过ssh连接ubuntu服务器进行开发 目录 Idea配置远程开发1.idae上点击file->Remote Development2.点击New Connection3.填写相关信息4.输入密码5.选择IDE版本和项目路径5.1 点击open an SSH terminal打开控制台5.2 依次执行命令 6.成…...

lua 实现 函数 判断两个时间戳是否在同一天

函数用于判断两个时间戳是否在同一天。下面是对代码的详细解释: ### 函数参数 - stampA 和 stampB:两个时间戳,用于比较。- resetInfo:一个可选参数,包含小时、分钟和秒数,用于调整时间戳。 ### 函数实现…...

工作纪实53-log4j日志打印文件隔离

在项目中,我有一堆业务日志需要打印,另一部分的日志,是没有格式的,需要被云平台离线解析并收集到kafka或者hdfs、hive等,需要将日志隔离打印到不同的文件 正常的log4j配置是下面这样的,配合Sl4j直接使用默认…...

7月21日,贪心练习

大家好呀,今天带来一些贪心算法的应用解题、 一,柠檬水找零 . - 力扣(LeetCode) 解析: 本题的贪心体现在对于20美元的处理上,我们总是优先把功能较少的10元作为找零,这样可以让5元用处更大 …...

FPGA DNA 获取 DNA_PORT

FPGA DNA DNA 是 FPGA 芯片的唯一标识, FPGA 都有一个独特的 ID ,也就是 Device DNA ,这个 ID 相当于我们的身份证,在 FPGA 芯片生产的时候就已经固定在芯片的 eFuse 寄存器中,具有不可修改的属性。在 xilinx 7series…...

使用 hutool工具实现导入导出功能。

hutool工具网址 Hutool参考文档 pom依赖 <dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artifactId><version>5.7.20</version></dependency><dependency><groupId>org.apache.poi</gro…...

大语言模型-Transformer-Attention Is All You Need

一、背景信息&#xff1a; Transformer是一种由谷歌在2017年提出的深度学习模型。 主要用于自然语言处理&#xff08;NLP&#xff09;任务&#xff0c;特别是序列到序列&#xff08;Sequence-to-Sequence&#xff09;的学习问题&#xff0c;如机器翻译、文本生成等。Transfor…...

spring(二)

一、为对象类型属性赋值 方式一&#xff1a;(引用外部bean) 1.创建班级类Clazz package com.spring.beanpublic class Clazz {private Integer clazzId;private String clazzName;public Integer getClazzId() {return clazzId;}public void setClazzId(Integer clazzId) {th…...

MAC 数据恢复软件: STELLAR Data Recovery For MAC V. 12.1 更多增强功能

天津鸿萌科贸发展有限公司是 Stellar 系列软件的授权代理商。 STELLAR Data Recovery For MAC 该数据恢复软件可从任何存储驱动器、清空的回收站以及崩溃或无法启动的 Mac 设备中恢复丢失或删除的文件。 轻松恢复已删除的文档、照片、音频文件和视频。自定义扫描以帮助恢复特…...

初识godot游戏引擎并安装

简介 Godot是一款自由开源、由社区驱动的2D和3D游戏引擎。游戏开发虽复杂&#xff0c;却蕴含一定的通用规律&#xff0c;正是为了简化这些通用化的工作&#xff0c;游戏引擎应运而生。Godot引擎作为一款功能丰富的跨平台游戏引擎&#xff0c;通过统一的界面支持创建2D和3D游戏。…...

Windows配置Qt+VLC

文章目录 前言下载库文件提取文件编写qmakeqtvlc测试代码 总结 前言 在Windows平台上配置Qt和VLC是开发多媒体应用程序的一个重要步骤。Qt作为一个强大的跨平台应用开发框架&#xff0c;为开发人员提供了丰富的GUI工具和库&#xff0c;而VLC则是一个开源的多媒体播放器&#x…...

本地部署 mistralai/Mistral-Nemo-Instruct-2407

本地部署 mistralai/Mistral-Nemo-Instruct-2407 1. 创建虚拟环境2. 安装 fschat3. 安装 transformers4. 安装 flash-attn5. 安装 pytorch6. 启动 controller7. 启动 mistralai/Mistral-Nemo-Instruct-24078. 启动 api9. 访问 mistralai/Mistral-Nemo-Instruct-2407 1. 创建虚拟…...

2月科研——arcgis计算植被差异

ArcGIS中&#xff0c;设置高于或低于某个值的像元为 -9999&#xff0c;然后将这些地方设为空——目的&#xff1a;去除异常值和黑色背景值 Con(("T_std ano7.tif" > 2) | ("T_std ano7.tif" < - 2), - 9999,"T_std ano7.tif") SetNull(&…...

深入理解Android中的缓存与文件存储目录

&#x1f31f; 引言 在Android应用开发中&#xff0c;合理管理应用的数据存储至关重要。应用可能需要保存各种类型的数据&#xff0c;从简单的配置信息到多媒体文件&#xff0c;甚至是缓存数据以提高性能和用户体验。Android提供了多个内置目录来满足这些需求&#xff0c;但它…...

Linux_生产消费者模型

目录 1、生产消费者模型示意图 2、生产者消费者之间的关系 3、定义交易场所 4、实现生产消费者模型 5、伪唤醒 6、多生产多消费者的实际运用 7、POSIX信号量 7.1 初始化信号量 7.2 销毁信号量 7.3 等待信号量 7.4 发布信号量 8、生产消费的环形队列模型 8.1…...

【Vue】`v-if` 指令详解:条件渲染的高效实现

文章目录 一、v-if 指令概述二、v-if 的基本用法1. 基本用法2. 使用 v-else3. 使用 v-else-if 三、v-if 指令的高级用法1. 与 v-for 一起使用2. v-if 的性能优化 四、v-if 的常见应用场景1. 表单验证2. 弹窗控制 五、v-if 指令的注意事项 Vue.js 是一个用于构建用户界面的渐进式…...

junit mockito Base基类

编写单元测试时我们都习惯性减少重复代码 以下基于spring mvc框架&#xff0c;需要手动pom导包 BaseTest类用于启动上下文进行debug调试 MockBaseTset类用于不启动上下文进行打桩mock pom.xml <dependency><groupId>org.mockito</groupId><artifactId…...

NCM格式解密技术深度解析:如何实现网易云音乐无损音频转换

NCM格式解密技术深度解析&#xff1a;如何实现网易云音乐无损音频转换 【免费下载链接】ncmdump ncmdump - 网易云音乐NCM转换 项目地址: https://gitcode.com/gh_mirrors/ncmdu/ncmdump ncmdump是一款专业的网易云音乐NCM格式解密工具&#xff0c;它通过Java实现完整的…...

5步打造高效音乐体验:Listen1扩展的智能选择与效率提升指南

5步打造高效音乐体验&#xff1a;Listen1扩展的智能选择与效率提升指南 【免费下载链接】listen1_chrome_extension one for all free music in china (chrome extension, also works for firefox) 项目地址: https://gitcode.com/gh_mirrors/li/listen1_chrome_extension …...

家庭实验室方案:树莓派控制OpenClaw调用远程Qwen3-32B服务

家庭实验室方案&#xff1a;树莓派控制OpenClaw调用远程Qwen3-32B服务 1. 为什么选择树莓派OpenClaw组合 去年冬天&#xff0c;当我试图用语音控制家里的智能设备时&#xff0c;发现市面上的解决方案要么需要持续联网&#xff08;隐私堪忧&#xff09;&#xff0c;要么响应延…...

开箱即用版Sambert语音合成:多情感AI配音部署与使用

开箱即用版Sambert语音合成&#xff1a;多情感AI配音部署与使用 1. 引言&#xff1a;多情感语音合成的价值与挑战 在智能客服、有声读物、虚拟主播等应用场景中&#xff0c;富有情感表现力的语音合成技术正变得越来越重要。传统语音合成系统往往只能生成单调机械的语音&#…...

Youtu-Parsing解析古籍与历史档案:助力文化遗产数字化与检索

Youtu-Parsing解析古籍与历史档案&#xff1a;助力文化遗产数字化与检索 你有没有想过&#xff0c;那些躺在博物馆或图书馆深处、纸张泛黄、字迹模糊的古籍和历史档案&#xff0c;如何才能被更多人方便地查阅和研究&#xff1f;过去&#xff0c;这需要研究者花费大量时间&…...

全面掌握ESP WiFi中继器DHCP服务器配置:高效管理嵌入式设备网络

全面掌握ESP WiFi中继器DHCP服务器配置&#xff1a;高效管理嵌入式设备网络 【免费下载链接】esp_wifi_repeater A full functional WiFi Repeater (correctly: a WiFi NAT Router) 项目地址: https://gitcode.com/gh_mirrors/es/esp_wifi_repeater ESP WiFi中继器是一款…...

用华为ENSP模拟器复现智慧小区网络:从VLAN划分到三层架构的保姆级配置教程

华为ENSP模拟器实战&#xff1a;智慧小区网络从零搭建全流程指南 当你第一次拿到智慧小区网络设计方案时&#xff0c;那些抽象的拓扑图和配置参数是否让你望而生畏&#xff1f;作为网络工程师成长路上的必经之路&#xff0c;企业级网络搭建从来不是纸上谈兵的游戏。本文将带你用…...

编译原理实战:5分钟搞定词法分析器的选择题(含答案解析)

编译原理实战&#xff1a;词法分析器选择题高效解题指南 在编译原理的学习和考试中&#xff0c;词法分析器相关选择题往往是考察重点&#xff0c;也是许多同学容易失分的部分。面对复杂的正规式、有限自动机等概念&#xff0c;如何快速准确地做出判断&#xff1f;本文将带你深入…...

告别黑盒调试:为VS2022和Halcon HImage定制一个带暗色主题的视觉化调试器

为VS2022和Halcon HImage打造沉浸式暗色调试器&#xff1a;从UI优化到高效开发实践 在计算机视觉开发领域&#xff0c;Halcon凭借其强大的图像处理能力成为工业检测、医疗影像等场景的首选工具。然而&#xff0c;长时间面对传统调试界面容易导致视觉疲劳&#xff0c;影响开发效…...

用Python代码和蒙特卡洛方法,手把手教你估算强化学习中的状态价值(附完整代码)

用Python实现蒙特卡洛方法估算强化学习状态价值的实战指南 马尔可夫决策过程&#xff08;MDP&#xff09;是强化学习的数学基础框架&#xff0c;而状态价值函数则是评估策略优劣的核心指标。许多初学者在理解抽象的状态价值概念时会遇到困难——这些数字究竟是如何从实际交互中…...