文章目录

  • 1. 题目
  • 2. 解题

1. 题目

给你一个下标从 0 开始的整数数组 nums ,如果 恰好 删除 一个 元素后,数组 严格递增 ,那么请你返回 true ,否则返回 false 。
如果数组本身已经是严格递增的,请你也返回 true 。

数组 nums 是 严格递增 的定义为:对于任意下标的 1 <= i < nums.length 都满足 nums[i - 1] < nums[i]

示例 1:
输入:nums = [1,2,10,5,7]
输出:true
解释:从 nums 中删除下标 2 处的 10 ,得到 [1,2,5,7] 。
[1,2,5,7] 是严格递增的,所以返回 true 。示例 2:
输入:nums = [2,3,1,2]
输出:false
解释:
[3,1,2] 是删除下标 0 处元素后得到的结果。
[2,1,2] 是删除下标 1 处元素后得到的结果。
[2,3,2] 是删除下标 2 处元素后得到的结果。
[2,3,1] 是删除下标 3 处元素后得到的结果。
没有任何结果数组是严格递增的,所以返回 false 。示例 3:
输入:nums = [1,1,1]
输出:false
解释:删除任意元素后的结果都是 [1,1] 。
[1,1] 不是严格递增的,所以返回 false 。示例 4:
输入:nums = [1,2,3]
输出:true
解释:[1,2,3] 已经是严格递增的,所以返回 true 。提示:
2 <= nums.length <= 1000
1 <= nums[i] <= 1000

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

2. 解题

class Solution {public:bool canBeIncreasing(vector<int>& nums) {if(nums.size() <= 2) return true;bool flag = true, prev = 0;for(int i = 0; i < nums.size()-1; ++i){if(nums[i] >= nums[i+1]) // 删除 i, 或者 i+1{if(i== nums.size()-2)//删除最后一个即可return true;if(i+2 < nums.size() && nums[i+2] > nums[i] && asc(nums, i+2))return true;//删除 i+1if(i+2 < nums.size() && nums[i+2] <= nums[i] && (i-1<0 || (i-1>=0 && nums[i+1] > nums[i-1])) && asc(nums, i+1))return true;//删除 ireturn false;}}return true;}bool asc(vector<int> a, int l){for(int i = l; i < a.size()-1; ++i){if(a[i] >= a[i+1])return false;}return true;}
};

0 ms 9.9 MB C++

时间复杂度 O(n)


我的CSDN博客地址 https://michael.blog.csdn.net/

长按或扫码关注我的公众号(Michael阿明),一起加油、一起学习进步!

LeetCode 1909. 删除一个元素使数组严格递增相关推荐

  1. LeetCode简单题之删除一个元素使数组严格递增

    题目 给你一个下标从 0 开始的整数数组 nums ,如果 恰好 删除 一个 元素后,数组 严格递增 ,那么请你返回 true ,否则返回 false .如果数组本身已经是严格递增的,请你也返回 tr ...

  2. 在 PHP 中从数组中删除一个元素

    问: 有没有一种简单的方法可以使用 PHP 从数组中删除一个元素,从而使 foreach ($array) 不再包含该元素? 我认为将它设置为 null 会做到这一点,但显然它不起作用. 答1: hu ...

  3. js array 删除指定元素_数组--学习笔记(数据结构数组 /js数组)

    学习目标: 了解什么是数组: 数组如何访问内存地址(一维,二维): 什么是数组 是由相同类型的元素的集合所组成的数据结构,分配一块连续的内存来存储.利用元素的索引可以计算出该元素对应的存储地址. 最简 ...

  4. 3.5链表----链表中元素的删除(只删除一个元素情况)

    3.5链表----链表中元素的删除(只删除一个元素情况) 该部分与上一节是息息相关的,关于如何在链表中删除元素,我们一步一步来分析: 一.图示删除逻辑 假设我们需要在链表中删除索引为2位置的元素,此时 ...

  5. 散列表删除一个元素c语言,分享一个简单高效的哈希表C语言实现

    hashtable是一种非常实用的数据结构,尤其数据量相当大的时候,当然其中很关键的一点是hash算法.之前看redis数据库源码它里面实现hash的算法为murmurhash3,后来发现了这个xxh ...

  6. kotlin List删除一个元素,添加一个元素

    kotlin List移除一个元素,添加一个元素时没有 remove和add函数只有 -= 和 += 在kotlin ArrayList中才有remove和add函数 没有 -= 和 += kotli ...

  7. string中删除一个元素

    #include <iostream> #include <string> #include <map> #include <set> using na ...

  8. LeetCode 1187. 使数组严格递增(DP)*

    文章目录 1. 题目 2. 解题 1. 题目 给你两个整数数组 arr1 和 arr2,返回使 arr1 严格递增所需要的最小「操作」数(可能为 0). 每一步「操作」中,你可以分别从 arr1 和 ...

  9. LeetCode 462. 最少移动次数使数组元素相等 II(数学)

    1. 题目 给定一个非空整数数组,找到使所有数组元素相等所需的最小移动数,其中每次移动可将选定的一个元素加1或减1. 您可以假设数组的长度最多为10000. 例如: 输入: [1,2,3] 输出: 2 ...

最新文章

  1. 成为算法工程师的路上,掌握什么思维会让自我提升突飞猛进?
  2. shell特殊符号cut命令,sort_wc_uniq命令,tee_tr_split命令
  3. 在win8上配置网站服务器,win8怎么配置web服务器地址
  4. CRM batch product check logic in one order line item
  5. sql server案例总结
  6. 球弹跳高度的计算(信息学奥赛一本通-T1085)
  7. Mac安装masscan【亲测有用】
  8. 解决css中存在的几种兼容性问题
  9. 使用phonegap,进行页面跳转
  10. python程序设计与实验_用于创建实验的Python应用程序和库
  11. ORA-01017: invalid username/password; logon denied ORA-02063: 紧接着line(源于DBLINKN~~~)
  12. python复利计算_python:复利计算
  13. 【盒模型】什么是盒模型
  14. DFRobot语音识别模块推荐-Gravity: I2C离线中文语音识别模块
  15. 视觉惯性单目SLAM (二) 算法基础知识
  16. win10系统如何连接宽带连接服务器,win10怎么连宽带_win10系统如何连接宽带
  17. php7模拟,认识PHP7虚拟机()三
  18. 无法连接服务器——CMNET与CMWAP的区别
  19. 点阵字库HZK12 HZK16 HZK24 ASC12 ASC16 简介 及 使用方法[附源码]
  20. 计算机等级考试office2007,计算机等级考试:WPS巧借Office2007制作描红字帖

热门文章

  1. python读写文件的文本模式_Python中文件的读写、写读和追加写读三种模式的特点...
  2. 简单的机器学习程序_人体动作识别小程序【机器学习 人工智能】
  3. DFT 与 ATPG综 述
  4. 【机器学习】朴素贝叶斯介绍及实例--对短信进行二分类 使用多项式分布
  5. 【python】数据结构和算法 + 浅谈单链表与双链表的区别
  6. Mysql数据库使用总结
  7. dblink查询_分库数据如何查询统计
  8. 如何手工抓取dump文件及分析
  9. 字符串替换:用参数字符数组成员替换字符串中的占位符(面试题)
  10. 有赞下拉菜单html,有赞vant-ui Tabs、List、PullRefresh组件实践