首页 > 其他分享 >力扣每日一题2022.12.11---1827. 最少操作使数组递增

力扣每日一题2022.12.11---1827. 最少操作使数组递增

时间:2022-12-11 12:55:05浏览次数:52  
标签:11 力扣 tem nums int 示例 --- 数组 增加

给你一个整数数组 nums (下标从 0 开始)。每一次操作中,你可以选择数组中一个元素,并将它增加 1 。
    比方说,如果 nums = [1,2,3] ,你可以选择增加 nums[1] 得到 nums = [1,3,3] 。
请你返回使 nums 严格递增 的 最少 操作次数。
我们称数组 nums 是 严格递增的 ,当它满足对于所有的 0 <= i < nums.length - 1 都有 nums[i] < nums[i+1] 。一个长度为 1 的数组是严格递增的一种特殊情况。

示例 1:
输入:nums = [1,1,1]
输出:3
解释:你可以进行如下操作:
1) 增加 nums[2] ,数组变为 [1,1,2] 。
2) 增加 nums[1] ,数组变为 [1,2,2] 。
3) 增加 nums[2] ,数组变为 [1,2,3] 。

示例 2:
输入:nums = [1,5,2,4,1]
输出:14

示例 3:
输入:nums = [8]
输出:0

提示:
    1 <= nums.length <= 5000
    1 <= nums[i] <= 104

来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/minimum-operations-to-make-the-array-increasing
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

 

要使增加次数达到最小,只需要让后一位的数字在增加后比前一位大1就可以。

即增加后的第 i + 1 个和第 i 个的关系是:nums[i] + 1 == nums[i + 1]

从下标 0 开始,之后的每一个数字,都需要比前一个数字大 1,即:nums[1] == nums[0] + 1;   nums[2] == nums[1] + 1;  nums[3] == nums[2] + 1;......

代码如下:

 1 class Solution {
 2     public int minOperations(int[] nums) {
 3         if (nums.length == 1) {
 4             return 0;
 5         }
 6         int tem = nums[0];
 7         int ans = 0;
 8         for (int i = 1; i < nums.length; i ++) {
 9             if (nums[i] > tem) {
10                 tem = nums[i];
11             } else {
12                 ans += tem - nums[i] + 1;
13                 tem = tem + 1;
14             }
15         }
16         return ans;
17     }
18 }

运行结果

 

标签:11,力扣,tem,nums,int,示例,---,数组,增加
From: https://www.cnblogs.com/allWu/p/16973419.html

相关文章

  • 2022强网拟态-only
    2022强网拟态only比赛的时候没做得出来,赛后复现一下。只有一次doublefree的机会,好在用的是seccomp开的沙盒,使得一开始就有很多空闲堆块,里面也残留有libc指针,通过堆风水去......
  • USB应用实战视频教程第4期:手把手玩转基于QT6.4的USB BULK上位机和下位机开发下篇(2022-
    ​​​​ 本期视频教程为大家展示基于QT6.4的USBBULK上位机开发视频教程,上期视频教程分享了下位机开发。首次制作QT6.4的USB上位机,踩了好多坑,在视频里面都给大家做了分享......
  • 检测轮廓边缘-辅助缺失区域进行修复
    声明:作为全网AI领域干货最多的博主之一,❤️不负光阴不负卿❤️????#专栏:#图像修复一文读懂????????Followme????,一起Get更多有趣AI????????这篇论文,这里......
  • Alpha-Beta搜索很简单
    基本搜索方法——简介(二)代码:/*d=3a=96b=-69BCDEd=2a=69b=-96FGHId=1a=96b=-69MLKJeval=7-7(v)>=-69(b)ret7(v)>=-96(b)ret-......
  • redis-配置开机启动
    开机启动方式可以配置多种,第一种最简单的,SYSTEMCTL方式为推荐方式。1、/etc/rc.local文件中配置#vim/etc/rc.local#打开文件/usr/local/redis/bin/redis-server/et......
  • 第一章-计算机组成原理
    冯诺依曼计算机基本模型基本特点1.主存储器:包括:存储体,MAR,MDR.概念:存储单元存储字(word)存储字长:和MDR位数有关.MDR位数等于存储字长存储元2.运算......
  • 2022-12-11 #9 再异口同唱 那告别曲 逝去的一身葱茏
    43AT_mujin_pc_2017_dOrientedTree头痛,想不了题。。。大概就是在直径重点断开,然后每棵子树都dp一下。先放一边吧。44P4899[IOI2018]werewolf狼人一个想法是......
  • 学期 2022-2023-1 学号:20221425 《计算机基础与程序设计》第十五周学习总结
    学期(如2022-2023-1)学号(如:20221425)《计算机基础与程序设计》第十五周学习总结作业信息这个作业属于哪个课程<班级的链接>(如2022-2023-1-计算机基础与程序设计)......
  • k8s驱逐篇(5)-kube-controller-manager驱逐
    kube-controller-manager驱逐概述kube-controller-manager驱逐主要依靠NodeLifecycleController以及其中的TaintManager;kube-controller-manager驱逐分类(1)开启了污点驱......
  • 快速创建软件安装包-ClickOnce
    大家好,我是沙漠尽头的狼。.NET是免费,跨平台,开源,用于构建所有应用的开发人员平台。今天介绍使用ClickOnce制作软件安装包,首先我们先了解什么是ClickOne。1.什么是ClickOnce......