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

​力扣解法汇总1144. 递减元素使数组呈锯齿状

目录链接:

力扣编程题-解法汇总_分享+记录-CSDN博客

GitHub同步刷题项目:

https://github.com/September26/java-algorithms

原题链接:力扣


描述:

给你一个整数数组 nums,每次 操作 会从中选择一个元素并 将该元素的值减少 1

如果符合下列情况之一,则数组 A 就是 锯齿数组

  • 每个偶数索引对应的元素都大于相邻的元素,即 A[0] > A[1] < A[2] > A[3] < A[4] > ...
  • 或者,每个奇数索引对应的元素都大于相邻的元素,即 A[0] < A[1] > A[2] < A[3] > A[4] < ...

返回将数组 nums 转换为锯齿数组所需的最小操作次数。

示例 1:

输入:nums = [1,2,3]
输出:2
解释:我们可以把 2 递减到 0,或把 3 递减到 1。

示例 2:

输入:nums = [9,6,1,6,2]
输出:4

提示:

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

解题思路:

* 解题思路:
* 分别尝试两种可能,即A[0]>A[1]的可能,以及A[0]<A[1]的可能,最后返回两者较小值。
* 接下来我们讲遍历的过程,使用到了最优解的策略。
* 比如[2,2,2,2],A[0]>A[1]的情况,读到i=1时,发现A[1]=A[0],则只能减少A[1]的值,count+1。A[1]减少,只会让A[2]更可能大于A[1]。
* 同样[2,2,2,2],A[0]<A[1]的情况,读到i=1时,发现A[1]=A[0],则只能减少A[0]的值,count+1。A[0]减少,不会影响A[2]和A[1]之间的比较。

代码:

public class Solution1144 {public int movesToMakeZigzag(int[] nums) {return Math.min(countSum(Arrays.copyOf(nums, nums.length), true), countSum(nums, false));}public int countSum(int[] nums, boolean firstBig) {boolean isBig = firstBig;int count = 0;for (int i = 1; i < nums.length; i++) {if (isBig) {if (nums[i - 1] <= nums[i]) {count += (nums[i] - nums[i - 1] + 1);nums[i] = nums[i - 1] - 1;}isBig = false;continue;}if (nums[i - 1] >= nums[i]) {count += (nums[i - 1] - nums[i] + 1);nums[i - 1] = nums[i] - 1;}isBig = true;}return count;}
}

相关文章:

​力扣解法汇总1144. 递减元素使数组呈锯齿状

目录链接&#xff1a; 力扣编程题-解法汇总_分享记录-CSDN博客 GitHub同步刷题项目&#xff1a; https://github.com/September26/java-algorithms 原题链接&#xff1a;力扣 描述&#xff1a; 给你一个整数数组 nums&#xff0c;每次 操作 会从中选择一个元素并 将该元素的…...

Spring彻头彻尾的讲解,按照Spring框架启动流程,逐步剖析问题,不再是大杂烩!

文章目录1. 定义Spring Bean篇1.1 定义Spring Bean的几种方式1.1.1 XML文件定义Spring Bean1.1.2 JavaConfig定义Spring Bean1.1.3 Component注解定义SpringBean1.2 装配Spring Bean的四种常用方式1.2.1 手动装配 XML文件1.2.2 自动装配 XML文件1.2.3 手动装配 JavaConfig文…...

[2]MyBatis+Spring+SpringMVC+SSM整合一套通关

二、Spring 1、Spring简介 1.1、Spring概述 官网地址&#xff1a;https://spring.io/ Spring 是最受欢迎的企业级 Java 应用程序开发框架&#xff0c;数以百万的来自世界各地的开发人员使用 Spring 框架来创建性能好、易于测试、可重用的代码。 Spring 框架是一个开源的 Jav…...

Javascript的API基本内容(三)

一、事件流 假设页面里有个div&#xff0c;当触发事件时&#xff0c;会经历两个阶段&#xff0c;分别是捕获阶段、冒泡阶段简单来说&#xff1a;捕获阶段是 从父到子 冒泡阶段是从子到父实际工作都是使用事件冒泡为主 二、页面加载事件 加载外部资源&#xff08;如图片、外联CS…...

【Python入门第十九天】Python 函数

函数是一种仅在调用时运行的代码块。 可以将数据&#xff08;称为参数&#xff09;传递到函数中。 函数可以把数据作为结果返回。 创建函数 在 Python 中&#xff0c;使用 def 关键字定义函数&#xff1a; 实例 def my_function():print("Hello from a function&quo…...

web前端性能优化

3.性能检测 当面对具体的项目实践时&#xff0c;该如何快速提升性能体验呢&#xff1f;或者说如何能够准确地定位到性能瓶颈呢&#xff1f;难道要比对着优化知识点清单&#xff0c;一项一项手动排查或完全凭借经验去处理吗&#xff1f;不&#xff0c;我们需要有一整套清晰科学…...

Telnet 基础实验2: SSH 实验

Telnet 基础实验2&#xff1a; SSH 实验 本实验只能使用 eNSP中 AR 系统的路由器做 拓扑图 SSH &#xff1a; Secure Shell 是一个网络安全协议&#xff0c;基本于 TCP 协议 22 端口传输数据&#xff0c;通过对网络数据的加密&#xff0c;使其能够在一个不安全的网络环境中&a…...

Panda Farm:首个部署在 Arbitrum 上的轻量化 GameFi 游戏

在2月16日&#xff0c;Bitget平台宣布 Launchpad 重新启动&#xff0c;并推出了重启后的首个项目 Panda Farm&#xff08;BBO&#xff09;&#xff0c;该 Launchpad 启动后得到了较高的关注。 Panda Farm 是部署在 Arbitrum 上的 GameFi应用&#xff0c;这可能首先意味着 Bitge…...

Redis实现分布式锁

1、使用背景几乎每个互联网公司中都使用了分布式部署&#xff0c;分布式服务下&#xff0c;就会遇到对同一个资源的并发访问的技术难题&#xff0c;如秒杀、下单减库存等场景。这些场景有一个共同特点就是访问量激增&#xff0c;虽然在系统设计时会通过限流、异步、排队等方式优…...

刷题小抄1-2数之和

时间复杂度和空间复杂度 对于一个算法高效性的评估,分为时间复杂度与空间复杂度两种,在算法优化到极致的情况下,只能舍弃时间来换取空间,或者舍弃空间来换取时间,故而两者可以说是互斥关系 时间复杂度衡量的是算法运行的速度,而空间复杂度衡量的是算法运行所需要的额外内存空…...

axicom的测试文档

目录&#xff09;SQLpython开放性业务题&#xff08;二选一&#xff09;完整代码SQL 问题描述 SQL&#xff0c; 请根据前一周各产品的总GMV将其分成五类&#xff1a;GMV Top 20%、20%-40%&#xff0c;40%-60%&#xff0c;60%-80%以及Bottom 20%的产品组&#xff0c;请计算这五…...

基于vue3异步组件、动态组件、vite批量导入实现路由权限动态管理(非addRoute方案)

开发后台管理系统必备的需求&#xff1a;动态菜单权限管理、或者说路由权限动态管理 原理是通过addRoute实现路由权限控制&#xff0c;一般分为两种&#xff1a; 后端生成当前用户相应的路由后由前端&#xff08;用 Vue Router 提供的API&#xff09;addRoutes 动态加载路由前…...

带中转hub的卡车无人机车辆路径问题

本文介绍了两类无人机卡车协同配送问题: 第一类是旅行商问题,也即一辆卡车拉着一架无人机服务给定的节点集合第二类是车辆路径问题,这里强制要求了一架卡车只能搭配一架无人机无人机卡车旅行商问题 符号列表: N N N:表示所有节点集合,含起始和终止节点M M M...

前端食堂技术周刊第 72 期:Signals 是前端框架的未来、Chrome Headless、ts-reset、magic-regexp、Bun 新文档

美味值&#xff1a;&#x1f31f;&#x1f31f;&#x1f31f;&#x1f31f;&#x1f31f; 口味&#xff1a;草莓番茄 食堂技术周刊仓库地址&#xff1a;https://github.com/Geekhyt/weekly 本期摘要 Signals 是前端框架的未来Chrome Headless 进化成完全体Next.js 13.2Deno…...

mysql中用逗号隔开的字段作查询用(find_in_set的使用)

mysql中用逗号隔开的字段作查询用(find_in_set的使用) 场景说明 在工作中&#xff0c;经常会遇到一对多的关系。想要在mysql中保存这种关系&#xff0c;一般有两种方式&#xff0c;一种是建立一张中间表&#xff0c;这样一条id就会存在多条记录。或者采用第二种方式&#xff…...

Day902.Memory存储引擎 -MySQL实战

Memory存储引擎 Hi&#xff0c;我是阿昌&#xff0c;今天学习记录的是关于Memory存储引擎的内容。 两个 group by 语句都用了 order by null&#xff0c;为什么使用内存临时表得到的语句结果里&#xff0c;0 这个值在最后一行&#xff1b; 而使用磁盘临时表得到的结果里&…...

Linux(Centos)安装RabbitMQ+延时插件+开机自启动

安装目录1&#xff1a;前言1.1 系统环境1.2&#xff1a;安装版本1.3 简介2&#xff1a;安装2.1&#xff1a;安装前准备&#xff1a;2.2&#xff1a;安装Erlang2.3&#xff1a;安装RabbitMQ2.3&#xff1a;延迟依赖插件安装1&#xff1a;前言 1.1 系统环境 操作系统版本&#…...

最近是遇到了CKPT(BLOCKED)

半夜被电话吵醒&#xff0c;数据库不可用了&#xff0c;无法交易。 远程登录查看&#xff0c;这个时候就没有所谓的安全不安全了&#xff0c;都可以远程了。 onstat - 数据库处于CKPT(REQ) CKPT&#xff1a;BLOCKED状态 onstat -l 发现所有的逻辑日志都是U------状态&#xff…...

RabbitMQ死信队列

目录 一、概念 二、出现死信的原因 三、实战 &#xff08;一&#xff09;代码架构图 &#xff08;二&#xff09;消息被拒 &#xff08;三&#xff09;消息TTL过期 &#xff08;四&#xff09;队列达到最大长度 一、概念 先从概念解释上搞清楚这个定义&#xff0c;死信&…...

Word控件Spire.Doc 【书签】教程(1):在C#/VB.NET:在 Word 中插入书签

Spire.Doc for .NET是一款专门对 Word 文档进行操作的 .NET 类库。在于帮助开发人员无需安装 Microsoft Word情况下&#xff0c;轻松快捷高效地创建、编辑、转换和打印 Microsoft Word 文档。拥有近10年专业开发经验Spire系列办公文档开发工具&#xff0c;专注于创建、编辑、转…...

AI Agent 时代的“将领艺术“:一个人如何指挥一支开发军队

摘要&#xff1a;本文探讨在 AI Agent 时代&#xff0c;开发者如何从"单兵作战"转变为"一人成军"&#xff0c;核心在于任务拆分能力、Agent 调度能力和系统集成能力。通过战争将领的类比&#xff0c;提供一套可复用的 Agent 项目管理框架。 关键词&#x…...

Qwen3智能字幕对齐系统在CSDN技术视频生态中的应用实践

Qwen3智能字幕对齐系统在CSDN技术视频生态中的应用实践 1. 引言 做技术视频的博主和讲师们&#xff0c;应该都遇到过这样的烦恼吧。辛辛苦苦录完一个小时的编程教程&#xff0c;光是剪辑和加字幕就得再花上大半天。尤其是字幕&#xff0c;要么得自己一句一句听写&#xff0c;…...

ArcGIS里坐标系搞混了怎么办?一份拯救‘空间参考错误’数据的实战排查指南

ArcGIS坐标系混乱急救手册&#xff1a;从定位问题到精准修复的全流程指南 当你在ArcGIS中加载多个来源的空间数据时&#xff0c;是否遇到过这些令人抓狂的场景&#xff1f;精心收集的行政边界图层突然跑到了撒哈拉沙漠&#xff1b;水文监测点数据明明采集于长江流域&#xff0c…...

计算机毕业设计:携程美食数据分析与个性化推荐平台 Django框架 爬虫 协同过滤推荐算法 可视化 推荐系统 数据分析 大数据(建议收藏)✅

1、项目介绍 技术栈 Python 语言、Django 框架、requests 爬虫技术、基于用户的协同过滤推荐算法、Echarts 可视化库、携程美食网数据源 功能模块 美食数据分析可视化模块美食数据模块美食推荐模块后台数据管理模块数据爬取模块注册登录模块留言板模块 项目介绍 本系统是基…...

ChatTTS离线部署实战:从模型优化到生产环境效率提升

最近在做一个需要离线语音合成的项目&#xff0c;用到了ChatTTS这个效果不错的模型。但直接部署原版模型时&#xff0c;遇到了不少头疼的问题&#xff1a;推理速度慢、内存占用高&#xff0c;在资源受限的生产环境里简直是“吞金兽”。经过一番折腾&#xff0c;总算摸索出一套从…...

3步接入钉钉机器人:OpenClaw+百川2-13B打造部门问答助手

3步接入钉钉机器人&#xff1a;OpenClaw百川2-13B打造部门问答助手 1. 为什么选择这个组合&#xff1f; 去年我们部门开始尝试用大模型解决内部知识检索问题。最初直接使用网页版对话工具&#xff0c;但遇到三个痛点&#xff1a;一是敏感业务数据不敢上传公有云&#xff1b;二…...

SDMatte镜像轻量化:去除冗余依赖、多阶段构建、镜像体积压缩至3.2GB

SDMatte镜像轻量化&#xff1a;去除冗余依赖、多阶段构建、镜像体积压缩至3.2GB 1. 项目背景与挑战 SDMatte是一款面向高质量图像抠图的AI模型&#xff0c;特别擅长处理复杂边缘和半透明物体的抠图任务。在电商、设计、内容创作等领域有着广泛的应用场景。然而&#xff0c;原…...

水塔水位西门子S7-1200PLC和MCGS7.7联机程序博途V16,带io表和注释

水塔水位西门子S7-1200PLC和MCGS7.7联机程序博途V16&#xff0c;带io表和注释&#xff0c;V20变频器接线说明水塔水位控制是工业自动化中常见的应用场景&#xff0c;今天咱们聊聊如何用西门子S7-1200 PLC和MCGS7.7触摸屏搭个联机控制系统。实际项目中遇到过水位传感器信号跳变的…...

新能源运维数字化方案:帮我吧助力企业实现全流程智能管控

在“双碳”目标的深入推进下&#xff0c;新能源产业迎来高速发展期&#xff0c;光伏、风电、储能、新能源汽车等领域的市场规模持续扩大&#xff0c;行业发展重心从“投建”转向“运营与服务”。对于新能源企业而言&#xff0c;设备分布广、终端用户分散、设备智能化程度高&…...

基于LiveQing流媒体平台实现大疆无人机等RTMP推流接入轻松实现Web网页直播+录像回放

大疆无人机RTMP推流接入LiveQing&#xff0c;轻松实现Web网页直播录像留存 在无人机直播场景中&#xff0c;大疆无人机凭借出色的空中视角和稳定的图传表现&#xff0c;成为应急救援、工程巡检、赛事直播、国土测绘等领域的首选设备。但很多用户在使用大疆无人机直播时&#xf…...