3038. 相同分数的最大操作数目 I

题目

给你一个整数数组 nums,如果 nums 至少包含 2 个元素,你可以执行以下操作:

选择 nums 中的前两个元素并将它们删除。一次操作的分数是被删除元素的和。

在确保所有操作分数相同的前提下,请你求出最多能进行多少次操作。

请你返回按照上述要求最多可以进行的操作次数。

示例

示例 1:

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

输出:2

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

  • 删除前两个元素,分数为 3 + 2 = 5nums = [1,4,5]
  • 删除前两个元素,分数为 1 + 4 = 5nums = [5]
    由于只剩下 1 个元素,我们无法继续进行任何操作。

示例 2:

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

输出:1

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

  • 删除前两个元素,分数为 3 + 2 = 5nums = [6,1,4]
    由于下一次操作的分数与前一次不相等,我们无法继续进行任何操作。

提示

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

思路分析

这道题目要求在确保所有操作分数相同的前提下,求出最多可以进行的操作次数。可以通过遍历数组并检查每次删除的前两个元素的和是否与第一次删除的前两个元素的和相等来解决。

拆解分析

  1. 初始化操作计数器 operateCnt 为 0,并记录第一次操作的分数 lastOperateScore
  2. 遍历数组,每次检查前两个元素的和是否等于 lastOperateScore
  3. 如果相等,增加操作计数器,并继续检查下一个。
  4. 如果不相等,则终止操作。

复杂度分析

  • 时间复杂度O(n/2),其中 n 是数组的长度,因为每次操作需要删除两个元素。
  • 空间复杂度O(1),只需要常数空间来存储操作计数器和分数。

代码

#include <stdio.h>int maxOperations(int* nums, int numsSize) {int operateCnt = 0;int lastOperateScore = nums[0] + nums[1];for (int i = 0; i < numsSize; i += 2) {if (numsSize - i >= 2) {int thisOperateScore = nums[i] + nums[i + 1];printf("thisOperateScore = %d\n", thisOperateScore);printf("lastOperateScore = %d\n", lastOperateScore);if (thisOperateScore != lastOperateScore) {break;}operateCnt++;} else {break;}}return operateCnt;
}

结果

在这里插入图片描述

一题多解

这题没必要多解

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

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

相关文章

排序数组 ---- 分治-归并

题目链接 题目: 分析: 用这道题来回顾一下归并排序的思想找到中间结点, 将数组分成两半, 运用递归的思想, 继续对一半进行分半, 分到最后剩一个元素, 再将左右数组合并, 合并两个有序数组, 是先分解, 再合并的过程在合并两个有序数组时, 需要一个额外的数组来记录, 为了避免每…

java.util.ConcurrentModificationException产生原因及解决办法

现象 第一次遇到此异常是在处理3g.renren.com的好友分组功能中&#xff0c;因为接口提供的好友分组&#xff08;以map的方式提供好友分组的id跟分组名&#xff09;中没有把分组名为空&#xff0c;但是id存在的数据屏蔽掉&#xff0c;所以我在调用接口服务之后&#xff0c;需要…

Unity DOTS技术(九) BufferElement动态缓冲区组件

文章目录 一.简介二.例子 一.简介 在之前的学习中我们发现Entity不能挂载相同的组件的. 当我们需要用相同的组件时则可以使用.IBufferElementData接口 动态缓冲区组件来实现 二.例子 1.创建IBufferElementData组件 using Unity.Entities; using UnityEngine; //[GenerateAu…

three.js官方案例(animation / multiple)webgl_animation_multiple.html学习笔记

目录 ​编辑 1 骨架工具&#xff08;SkeletonUtils&#xff09; 1.1 clone方法 2 蒙皮网格&#xff08;SkinnedMesh&#xff09; 3 自测 4 webgl_animation_multiple.html全部脚本 1 骨架工具&#xff08;SkeletonUtils&#xff09; 用于操控 Skeleton、 SkinnedMesh、和…

网络编程: 高级IO与多路转接select,poll,epoll的使用与介绍

网络编程: 高级IO与多路转接select,poll,epoll的使用与介绍 前言一.五种IO模型1.IO的本质2.五种IO模型1.五种IO模型2.同步IO与异步IO3.IO效率 二.非阻塞IO1.系统调用介绍2.验证代码 三.select多路转接1.系统调用接口2.写代码 : 基于select的TCP服务器1.封装的Socket接口2.开始写…

1-Maven-settings配置

1-Maven-settings配置 整理下Maven工具的使用。 【本地仓库、私服、镜像仓库、远程仓库、中央仓库】 本文基于阅读其他博客和对公司Maven配置的学习整理出来的。希望通过本此学习能对Maven有个整体性的掌控。 顺序&#xff1a;profile.repository > pom文件中的repository &…

asp.net core使用httpclient

主要讲解常见的get请求和post请求 GET var client new HttpClient(); //3秒钟不响应就超时 client.TimeoutTimeSpan.FromSeconds(3); using HttpResponseMessage response await client.GetAsync("todos/3"); var jsonResponse await response.Content.ReadAsSt…

postman测试接口(springboot+shiro)带token也不通的解决方案

前几天做项目遇到个问题&#xff0c;在系统可以正常使用的接口&#xff0c;拿postman带token访问时候确一直不通&#xff08;后台返回需要登录的提示信息&#xff09; 但是我明明加了token的呀 打断点发现 subject.isAuthenticated()false 查资料猜测可能是因为请求的安全上…

全面解析大模型知识与应用

本文深入探讨了大型机器学习模型&#xff08;大模型&#xff09;的基本概念、发展历程、特点、分类、工作原理、定制与优化方法&#xff0c;以及其在不同领域的应用和部署策略。 文章目录 大模型概述大模型的基本概念大模型的发展历程大模型的特点与分类大模型的核心概念与类型…

特征提取器笔记:CenterLoss+ArcLoss

特征提取器 特征&#xff1a;数据的差异性 一个好的特征提取器&#xff1a;足够的数据量不错的特征提取能力 增强特征提取能力核心是损失 线性函数解决非线性问题解决方式 分为多个线性问题升维 --> 线性不可分转为线性可分激活函数 常见人脸识别损失函数 SoftmaxLos…

【WP】猿人学_16_js逆向_window蜜罐

https://match.yuanrenxue.cn/match/16 抓包分析 荷载一个加密参数&#xff0c;一个时间戳 时间: 2024-06-07 15:52:31时间戳: 1717746751 1717746751000时间戳和现在对得上&#xff0c;直接生成就行。 追栈 追栈找m的生成位置。 点进去打断点&#xff0c;重新点击其他…

C语言基础——函数

ʕ • ᴥ • ʔ づ♡ど &#x1f389; 欢迎点赞支持&#x1f389; 个人主页&#xff1a;励志不掉头发的内向程序员&#xff1b; 专栏主页&#xff1a;C语言基础&#xff1b; 文章目录 前言 一、函数的概念 二、库函数 2.1 库函数和头文件 2.2 库函数的使用/…

前端工程化工具系列(七)—— PNPM(v9.2.0):高性能的 NPM 替代品

PNPM&#xff08;Performant NPM&#xff09;是一个高效的 NPM 包管理器&#xff0c;它使用硬链接和符号链接来减少磁盘空间的使用&#xff0c;并提高了安装速度。 1. 环境要求 v9 的 PNPM 需要 Node.js v18。 2. 安装 npm i -g pnpm3 基本功能 3.1 安装 NPM 包 安装单个…

出售iPhone前的必做步骤:完全擦除个人数据的方法

当您准备在闲鱼上转售旧 iPhone、将其捐赠、送给朋友或通过 Apple 回收之前&#xff0c;您可能会选择执行“恢复”操作来擦除您的数据。但请注意&#xff0c;这一操作并不能真正删除设备中的数据。被“删除”或“格式化”的数据实际上仍存在于 iPhone 中&#xff0c;只是被系统…

CSS自定义属性

CSS自定义属性&#xff0c;更常被称为CSS变量&#xff0c;它允许我们赋予某一值一个特定的语义名称&#xff0c;然后在整个样式表中反复使用&#xff0c;无论是全局还是局部。接下来&#xff0c;让我们深入探索它的运作方式和使用场景。 1. 定义CSS自定义属性 CSS自定义属性的…

【TVM 教程】编译 PyTorch 目标检测模型

本文介绍如何用 Relay VM 部署 PyTorch 目标检测模型。 首先应安装 PyTorch。此外&#xff0c;还应安装 TorchVision&#xff0c;并将其作为模型合集&#xff08;model zoo&#xff09;。 可通过 pip 快速安装&#xff1a; pip install torch pip install torchvision或参考…

SpringBoot+Vue在线文档管理系统(前后端分离)

技术栈 JavaSpringBootMavenMySQLMyBatisVueShiroElement-UI 系统角色对应功能 员工管理员 系统功能截图

《精通ChatGPT:从入门到大师的Prompt指南》第1章:认识ChatGPT

第1章&#xff1a;认识ChatGPT 1.1 ChatGPT是什么 ChatGPT&#xff0c;全称为Chat Generative Pre-trained Transformer&#xff0c;是由OpenAI开发的一种先进的自然语言处理模型。它利用了深度学习中的一种技术——Transformer架构&#xff0c;来生成类人文本。ChatGPT通过对…

贪心算法-数组跳跃游戏(mid)

目录 一、问题描述 二、解题思路 1.回溯法 2.贪心算法 三、代码实现 1.回溯法实现 2.贪心算法实现 四、刷题链接 一、问题描述 二、解题思路 1.回溯法 使用递归的方式&#xff0c;找到所有可能的走步方式&#xff0c;并记录递归深度&#xff08;也就是走步次数&#x…

玩转ChatGPT:最全学术论文提示词分享【上】

学境思源&#xff0c;一键生成论文初稿&#xff1a; AcademicIdeas - 学境思源AI论文写作 在当今数字时代&#xff0c;人工智能&#xff08;AI&#xff09;技术正迅速改变各行各业的运作方式。特别是&#xff0c;OpenAI的ChatGPT等语言模型以其强大的文本生成能力&#xff0c;…