​LeetCode解法汇总2460. 对数组执行操作

news/2024/12/29 12:15:44/

目录链接:

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

GitHub同步刷题项目:

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

原题链接:力扣


描述:

给你一个下标从 0 开始的数组 nums ,数组大小为 n ,且由 非负 整数组成。

你需要对数组执行 n - 1 步操作,其中第 i 步操作(从 0 开始计数)要求对 nums 中第 i 个元素执行下述指令:

  • 如果 nums[i] == nums[i + 1] ,则 nums[i] 的值变成原来的 2 倍,nums[i + 1] 的值变成 0 。否则,跳过这步操作。

在执行完 全部 操作后,将所有 0 移动 到数组的 末尾 。

  • 例如,数组 [1,0,2,0,0,1] 将所有 0 移动到末尾后变为 [1,2,1,0,0,0] 。

返回结果数组。

注意 操作应当 依次有序 执行,而不是一次性全部执行。

示例 1:

输入:nums = [1,2,2,1,1,0]
输出:[1,4,2,0,0,0]
解释:执行以下操作:
- i = 0: nums[0] 和 nums[1] 不相等,跳过这步操作。
- i = 1: nums[1] 和 nums[2] 相等,nums[1] 的值变成原来的 2 倍,nums[2] 的值变成 0 。数组变成 [1,4,0,1,1,0] 。
- i = 2: nums[2] 和 nums[3] 不相等,所以跳过这步操作。
- i = 3: nums[3] 和 nums[4] 相等,nums[3] 的值变成原来的 2 倍,nums[4] 的值变成 0 。数组变成 [1,4,0,2,0,0] 。
- i = 4: nums[4] 和 nums[5] 相等,nums[4] 的值变成原来的 2 倍,nums[5] 的值变成 0 。数组变成 [1,4,0,2,0,0] 。
执行完所有操作后,将 0 全部移动到数组末尾,得到结果数组 [1,4,2,0,0,0] 。

示例 2:

输入:nums = [0,1]
输出:[1,0]
解释:无法执行任何操作,只需要将 0 移动到末尾。

提示:

  • 2 <= nums.length <= 2000
  • 0 <= nums[i] <= 1000

解题思路:

/**

* 首先对于nums[i] == nums[i + 1]的值,进行对应的处理。

* 然后将所有 0 移动 到数组的 末尾,我们设置一个index,记录当前不为0的个数,每次遍历到一个不为0的数字时和num[index]交换位置即可。

*/

代码:

vector<int> Solution2460::applyOperations(vector<int> &nums)
{for (int i = 0; i < nums.size() - 1; i++){if (nums[i] != nums[i + 1]){continue;}nums[i] = nums[i] * 2;nums[i + 1] = 0;}int index = 0;for (int i = 0; i < nums.size(); i++){if (nums[i] == 0){continue;}int local = nums[index];nums[index] = nums[i];nums[i] = local;index++;}return nums;
};


http://www.ppmy.cn/news/220382.html

相关文章

如何从消失的异常堆栈定位线上问题

一、消失的异常堆栈 如何快速定位问题&#xff1f;想必大家心中都有自己的答案&#xff0c;当然最简单直接的办法还是查找异常堆栈信息。 然而有时异常堆栈并不完整&#xff0c;只有一句描述&#xff0c;如下&#xff1a; Caused by: java.lang.NullPointerException 造成这…

第17节:cesium 图元聚合基础教程(含源码+视频)

相关代码: <template><div class="viewer"><vc-viewer @ready="ready" :logo="false"><vc-layer-imagery><vc-pr

解决苹果手机给windows笔记本电脑开热点电脑连接不上热点的问题

过年这几天在家用笔记本电脑办公&#xff0c;由于条件限制只能使用手机给电脑上网的方式。以前用苹果手机给windows笔记本开热点一直都能连接上&#xff0c;但是今年没有连接上&#xff0c;虽然电脑可以连接上&#xff0c;但是立马就断开了&#xff0c;时断时续&#xff0c;很是…

苹果笔记本电脑安装Windows系统的教程!

目录 步骤一&#xff1a;下载64位Windows10文件包&#xff08;三选一 , 任君选择&#xff09;推荐下载链接1: [https://windows.xnayw.cn/win1064.html ](https://windows.xnayw.cn/win1064.html)推荐下载链接2: [https://www.xitongzhijia.net](https://www.xitongzhijia.net)…

苹果M1芯片笔记本电脑SIP系统完整性保护无法关闭成功

环境&#xff1a; MacBook Pro 13.3 八核M18G/256G 2020款 Mac os 11.7.1 问题描述&#xff1a; 系统完整性保护 SIP(System Integrity Protection&#xff0c;有时被称作rootless [2-3] &#xff0c;中文名为系统完整性保护) 是苹果公司的macOS系统中一个安全功能&#x…

苹果Mac笔记本电脑如何开启热点分享网络?

苹果除了在iPhone 上有设计热点分享的功能之外&#xff0c;其实Mac 笔记本电脑很早就已经可以开启类似热点分享网络的功能了&#xff0c;在没有Wi-Fi 只提供有线网路的地方相当好用&#xff0c;来看看要在苹果Mac上如何开启热点分享网路的功能吧&#xff01; 苹果Mac 开启热点…

青少年C++编程等考有这么多??机构到底该带孩子考哪个?

随着信息学的普及与发展&#xff0c;越来越多的孩子开始学习C&#xff0c;参加编程等考来检验C的学习成果、作为也逐渐成为了一个共识&#xff0c;跟C有关的等考究竟有哪些&#xff0c;哪个等考含金量够高&#xff0c;能够客观、有效地检验学习成果呢&#xff1f; 在这里整理了…

Zookeeper是什么,它有什么特性与使用场景?

ZooKeeper 是一种开源的分布式协调服务&#xff0c;由雅虎公司开发。它可以帮助分布式应用程序实现数据同步、配置管理、命名服务等功能&#xff0c;并具有高可用性、可靠性和可扩展性等特性。本文将对 ZooKeeper 的定义、特性和使用场景进行详细介绍。 什么是 ZooKeeper&…