308、删除一个元素使数组严格递增

给你一个下标从 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

通过次数5,763提交次数18,203

来源:力扣(LeetCode)

链接:https://leetcode-cn.com/problems/remove-one-element-to-make-the-array-strictly-increasing

著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

package cn.fansunion.leecode.array;

/**

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

 *

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

 *

 * 来源:力扣(LeetCode) 链接:力扣

 *

 * @author wen.lei@brgroup.com

 *

 *         2022-2-16

 */

public class RemoveOneElementToMakeTheArrayStrictlyIncreasing {

    /*    输入: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 。*/

     

    /**

     * 看了网友解题思路,关键点:怎样删除单个元素。在一次遍历的复杂度的追求下,自己之前的各种错误写法,就是没能“正确跳过”需要被删除的元素,实际分了好几种情况

     * 题目难度:暴力破解(穷举),很简单;O(N)复杂度,有难度了 TODO

     力扣

     * @param nums

     * @return

     */

    public boolean canBeIncreasing(int[] nums) {

        return false;

         

    }

     

    /**

     * 一次遍历。统计不严格递增的次数,超过2次,就返回false;遍历完成,返回true<br/>

     * 在canBeIncreasingError方法的基础上,调整下逻辑(简化逻辑,不用维护ignoreTimes,不用维护prev)<br/>

     * 换种思路:通常来说,简单题,代码就不应该很复杂<br/>

     * 然后,还是不对啊,哪里理解错了

     * 6 1 2 3 4 5

     * 1 2 6 4 5 7

     * 1 2 4 5 7 6

     * @param nums

     * @return

     */<

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值