做网站所需要的技术,年栾洪全单页做网站教程,能做游戏的软件,广告制作网站文章目录1. 题目2. 解题1. 题目
给你一个下标从 0 开始的整数数组 nums #xff0c;如果 恰好 删除 一个 元素后#xff0c;数组 严格递增 #xff0c;那么请你返回 true #xff0c;否则返回 false 。 如果数组本身已经是严格递增的#xff0c;请你也返回 true 。
数组…
文章目录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(vectorint 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[i1]) // 删除 i 或者 i1{if(i nums.size()-2)//删除最后一个即可return true;if(i2 nums.size() nums[i2] nums[i] asc(nums, i2))return true;//删除 i1if(i2 nums.size() nums[i2] nums[i] (i-10 || (i-10 nums[i1] nums[i-1])) asc(nums, i1))return true;//删除 ireturn false;}}return true;}bool asc(vectorint a, int l){for(int i l; i a.size()-1; i){if(a[i] a[i1])return false;}return true;}
};0 ms 9.9 MB C
时间复杂度 O(n) 我的CSDN博客地址 https://michael.blog.csdn.net/
长按或扫码关注我的公众号Michael阿明一起加油、一起学习进步