入门力扣自学笔记238 C++ (题目编号:1144)
1144. 递减元素使数组呈锯齿状
题目:
给你一个整数数组 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
来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/decrease-elements-to-make-array-zigzag
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
思路:
首先,模拟一遍,从最后一个元素开始,决定最后一个元素和倒数第二个元素对比起来是”向上“或者”向下“。
然后分“向上”和“向下”两种情况进行讨论即可。
最后输出次数最少的那个。
代码:
class Solution {
public:int movesToMakeZigzag(vector<int>& nums) {int i = nums.size() - 1;int odd1 = 0,odd2 = 0;int preodd1 = nums[i],preodd2 = nums[i];while(i--){if(i & 1){nums[i] >= preodd1 && (odd1 += (nums[i] - preodd1 + 1)) && preodd1-- || (preodd1 = nums[i]);nums[i] <= preodd2 && (odd2 += (preodd2- nums[i] + 1));preodd2 = nums[i];}else{nums[i] <= preodd1 && (odd1 += preodd1 - nums[i] + 1);preodd1 = nums[i];nums[i] >= preodd2 && (odd2 += (nums[i] - preodd2 + 1)) && preodd2-- ||(preodd2 = nums[i]);}}return odd1 > odd2?odd2 : odd1;}
};
相关文章:
入门力扣自学笔记238 C++ (题目编号:1144)
1144. 递减元素使数组呈锯齿状 题目: 给你一个整数数组 nums,每次 操作 会从中选择一个元素并 将该元素的值减少 1。 如果符合下列情况之一,则数组 A 就是 锯齿数组: 每个偶数索引对应的元素都大于相邻的元素,即 A…...
蓝桥杯-寒假作业
没有白走的路,每一步都算数🎈🎈🎈 题目描述: 有四个等式,每个等式的运算规则已经定好了,也就是我们常见的小学的四则运算,但是能够用来四则运算的数字非常有限,包括1~13…...
测试用例篇
1.测试用例的意义 测试用例(Test Case)是为了实施测试而向被测试的系统提供的一组集合,这组集合包含:测试环境、操作步骤、测试数据、预期结果等要素。 测试用例的意义是为了帮助测试人员了解测什么,怎么测 eg&#x…...
自动驾驶自主避障概况
文章目录前言1. 自主避障在自动驾驶系统架构中的位置2. 自主避障算法分类2.1 人工势场法(APF)2.1.1引力势场的构建2.1.2斥力势场的构建2.1.3人工势场法的改进2.2 TEB(Timed-Eastic-Band, 定时弹性带)2.3 栅格法2.4 向量场直方图(V…...
Python实用的库排名…
Python 是一个功能强大的编程语言,有着丰富的第三方库和模块,可以帮助你解决各种各样的问题。以下是一些比较厉害的 Python 库: NumPy:一个强大的数值计算库,提供了高效的数组和矩阵操作功能。 Pandas:提供…...
【YOLO系列】YOLOv4论文超详细解读1(翻译 +学习笔记)
前言 经过上一期的开篇介绍,我们知道YOLO之父Redmon在twitter正式宣布退出cv界,大家都以为YOLO系列就此终结的时候,天空一声巨响,YOLOv4闪亮登场!v4作者是AlexeyAB大神,虽然换人了,但论文中给出…...
【神经网络】Transformer基础问答
1.Transforme与LSTM的区别 transformer和LSTM最大的区别就是LSTM的训练是迭代的,无法并行训练,LSTM单元计算完T时刻信息后,才会处理T1时刻的信息,T 1时刻的计算依赖 T-时刻的隐层计算结果。而transformer的训练是并行了࿰…...
制定防火墙策略的步骤和建议
制定防火墙策略是保护企业网络环境安全的关键一步。下面是一些制定防火墙策略的步骤和建议,供参考: 识别网络资产:确定企业网络环境中所有的网络资产,包括服务器、应用程序、数据库、移动设备和终端用户设备等,并进行…...
新必应(New Bing)国内申请与使用教程
微软的新必应(New Bing)基于GPT4模型,比ChatGPT的GPT3.5模型领先半个世代。并且集成了Edge浏览器的数据资源,功能更加强大。经过不断的踩坑,终于申请到了New Bing的使用权限,且国内网络也能够正常使用&…...
博客系统——项目测试报告
目录 前言 博客系统——项目介绍 1、测试计划 1.1、功能测试 1.1.1、编写测试用例 1.1.2、实际执行步骤 1.2、使用Selenium进行Web自动化测试 1.2.1、引入依赖 1.2.2、提取共性,实现代码复用 1.2.3、创建测试套件类 1.2.4、博客登录页自动化测试 1.2.5、…...
Macbook M1 安装PDI(Kettle) 9.3
Macbook M1 安装PDI(Kettle) 9.3 当前 PDI(Kettle)最新版为9.3,依赖Java JDK 11。因为没有专门用于 M1的程序,需要下载并安装x86_64架构的JDK及依赖软件,并 “强制在Intel模式下运行shell” 的方式来实现 Kettle 的正…...
机器学习——模型评估
在学习得到的模型投放使用之前,通常需要对其进行性能评估。为此,需使用一个“测试集”(testing set)来测试模型对新样本的泛化能力,然后以测试集上的“测试误差( tootino error)作为泛化误差的近似。我们假设测试集是从样本真实分…...
react react-redux学习记录
react react-redux学习记录1.原理2.怎么用呢2.1 容器组件2.2UI组件2.3 App.jsx3.简化3.1简写mapDispatch3.2 Provider组件的使用3.3整合UI组件和容器组件1.原理 UI组件:不能使用任何redux的api,只负责页面的呈现、交互等。 容器组件:负责和redux通信&…...
nodejs环境配置
啥是node.js 简单理解就是js运行环境 啥是npm 简单理解就是nodejs包管理工具,全称Node Package Manager 啥是cnpm npm的开源镜像,在国内使用cnpm替代npm可以起到加速的效果 https://npmmirror.com/ ①安装node.js https://nodejs.org/en/download/ 下载…...
数据治理之元数据管理Atlas
数据治理之元数据管理的利器——Atlas 一、数据治理与元数据管理 1.1 背景 为什么要做数据治理? 业务繁多,数据繁多,业务数据不断迭代。人员流动,文档不全,逻辑不清楚,对于数据很难直观理解,…...
15 Nacos客户端实例注册源码分析
Nacos客户端实例注册源码分析 实例客户端注册入口 流程图: 实际上我们在真实的生产环境中,我们要让某一个服务注册到Nacos中,我们首先要引入一个依赖: <dependency><groupId>com.alibaba.cloud</groupId>&l…...
C++将派生类赋值给基类(向上转型)
1.将派生类对象赋值给基类对象 #include <iostream> using namespace std;//基类 class A{ public:A(int a); public:void display(); public:int m_a; }; A::A(int a): m_a(a){ } void A::display(){cout<<"Class A: m_a"<<m_a<<endl; }//…...
使用Platform Designer创建Nios II 最小系统
Nios II简介 Nios II 软核处理器十多年前就有了,它和xilinx的MicroBlaze类似,性能相比硬核处理器要差得多,工程应用也不是很多,那还有必须学习一下吗?我个人认为了解一下Nios II开发流程,对intel FPGA开…...
CD销售管理系统
技术:Java、JSP等摘要:二十一世纪是一个集数字化,网络化,信息化的,以网络为核心的社会。中国的网民充分领略到“畅游天地间,网络无极限” 所带来的畅快。随着Internet的飞速发展,使得网络的应用…...
华为OD机试模拟题 用 C++ 实现 - 玩牌高手(2023.Q1)
最近更新的博客 【华为OD机试模拟题】用 C++ 实现 - 最多获得的短信条数(2023.Q1)) 文章目录 最近更新的博客使用说明玩牌高手题目输入输出描述示例一输入输出说明Code使用说明 参加华为od机试,一定要注意不要完全背诵代码,需要理解之后模仿写出,通过率才会高。 华为…...
Phi-4-mini-reasoning应用场景:数学建模竞赛辅助推导与公式生成
Phi-4-mini-reasoning应用场景:数学建模竞赛辅助推导与公式生成 1. 模型概述与核心能力 Phi-4-mini-reasoning是一款由微软开发的轻量级开源模型,专为数学推理、逻辑推导和多步解题等强逻辑任务设计。这个3.8B参数的模型虽然体积小巧,但在数…...
Wan2.2-I2V-A14B图像转视频实战:基于卷积神经网络的风格迁移与动态生成
Wan2.2-I2V-A14B图像转视频实战:基于卷积神经网络的风格迁移与动态生成 1. 引言:当静态艺术遇见动态魔法 想象一下,你手中有一幅精美的水墨画或一张概念设计草图,如果能让它"活过来",变成一段流动的视频&a…...
PaddleX印章识别实战:5分钟搞定Seal-Recognition模型部署(附避坑指南)
PaddleX印章识别实战:从零部署到高效应用的完整指南 印章识别在合同审核、公文归档等场景中需求旺盛,但传统方案往往面临部署复杂、适配困难等问题。PaddleX推出的Seal-Recognition模型通过预训练产线低代码API的方式,让中小团队也能快速获得…...
5分钟终极指南:Windows虚拟手柄驱动ViGEmBus完整教程
5分钟终极指南:Windows虚拟手柄驱动ViGEmBus完整教程 【免费下载链接】ViGEmBus Windows kernel-mode driver emulating well-known USB game controllers. 项目地址: https://gitcode.com/gh_mirrors/vi/ViGEmBus 想要在Windows系统上享受专业级的游戏控制体…...
如何在ComfyUI中智能合成视频序列:VHS_VideoCombine节点的专业应用方案
如何在ComfyUI中智能合成视频序列:VHS_VideoCombine节点的专业应用方案 【免费下载链接】ComfyUI-VideoHelperSuite Nodes related to video workflows 项目地址: https://gitcode.com/gh_mirrors/co/ComfyUI-VideoHelperSuite 面对AI生成的大量图像序列&…...
ms-swift多模态训练:图文视频语音混合训练,速度提升100%+
ms-swift多模态训练:图文视频语音混合训练,速度提升100% 1. 多模态训练的新选择 在AI模型开发领域,多模态训练一直是个技术难题。传统方法需要分别处理文本、图像、视频和语音数据,然后手动对齐不同模态的特征表示,整…...
【等保三级Java安全加固实战指南】:20年专家亲授7大高危漏洞修复清单与合规落地路径
第一章:等保三级Java安全加固的合规基线与实施全景图等保三级对Java应用系统提出了覆盖身份鉴别、访问控制、安全审计、通信保密性、代码安全及运行环境防护等多维度强制性要求。其合规基线并非单一技术点的叠加,而是以《GB/T 22239-2019 信息安全技术 网…...
Phi-3-mini-4k-instruct-gguf效果实测:128ms首token延迟+98%中文基础任务通过率
Phi-3-mini-4k-instruct-gguf效果实测:128ms首token延迟98%中文基础任务通过率 1. 开篇:轻量级文本生成新选择 最近测试了微软Phi-3系列中的轻量级选手——Phi-3-mini-4k-instruct-gguf模型,结果让人惊喜。这个专门优化过的GGUF版本&#x…...
Qwen2.5-7B入门实战:从Docker到网页服务的全流程解析
Qwen2.5-7B入门实战:从Docker到网页服务的全流程解析 1. 引言:为什么选择Qwen2.5-7B Qwen2.5-7B是阿里最新开源的大语言模型,相比前代版本在知识量、编程能力和数学能力上有显著提升。对于想要快速体验大模型能力的开发者来说,通…...
PXE装机避坑大全:从TFTP根目录设置到Kickstart无人值守的13个常见错误修复
PXE装机避坑大全:从TFTP根目录设置到Kickstart无人值守的13个常见错误修复 在企业级IT运维中,PXE(预启动执行环境)网络装机技术因其高效、自动化的特点,已成为服务器批量部署的标配方案。但看似简单的PXE部署流程背后&…...
