3591单调数列

Posted 小雷FansUnion

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了3591单调数列相关的知识,希望对你有一定的参考价值。

如果数组是单调递增或单调递减的,那么它是 单调 的。

如果对于所有 i <= j,nums[i] <= nums[j],那么数组 nums 是单调递增的。 如果对于所有 i <= j,nums[i]> = nums[j],那么数组 nums 是单调递减的。

当给定的数组 nums 是单调数组时返回 true,否则返回 false

  

示例 1

输入:nums = [1,2,2,3]

输出:true

示例 2

输入:nums = [6,5,4,4]

输出:true

示例 3

输入:nums = [1,3,2]

输出:false

  

提示:

1 <= nums.length <= 105

-105 <= nums[i] <= 105

来源:力扣(LeetCode)

链接:https://leetcode-cn.com/problems/monotonic-array

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

package cn.fansunion.leecode.array.max;

/**

 * 896. 单调数列 <br/>

 * 如果数组是单调递增或单调递减的,那么它是 单调 的。 <br/>

 *

 * 如果对于所有 i <= j,nums[i] <= nums[j],那么数组 nums 是单调递增的。 <br/>

 * 如果对于所有 i <= j,nums[i] >= nums[j],那么数组 nums 是单调递减的。 <br/>

 *

 * 当给定的数组 nums 是单调数组时返回 true,否则返回 false。 <br/>

 *

 * 来源:力扣(LeetCode) 链接:力扣 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

 *

 * @author wen.lei@brgroup.com

 *

 *         2022-3-9

 */

public class MonotonicArray

    /*    示例 1:

     

    输入:nums = [1,2,2,3]

    输出:true

    示例 2:

     

    输入:nums = [6,5,4,4]

    输出:true

    示例 3:

     

    输入:nums = [1,3,2]

    输出:false*/

    public boolean isMonotonic(int[] nums)

        return isAsc(nums) || isDesc(nums);

    

    // 是否降序

    private boolean isDesc(int[] nums)

        int prev = Integer.MAX_VALUE;

        // 降序时,当前的 不应该比 前面的大

        for (int cur : nums)

            if (cur > prev)

                return false;

            

            prev = cur;

        

        return true;

    

    // 是否升序

    private boolean isAsc(int[] nums)

        int prev = Integer.MIN_VALUE;

        // 升序时,当前的 不应该比 前面的小

        for (int cur : nums)

            if (cur < prev)

                return false;

            

            prev = cur;

        

        return true;

    

package test.leecode.array;

import org.junit.Assert;

import org.junit.Test;

import cn.fansunion.leecode.array.max.MonotonicArray;

/**

 * @author wen.lei@brgroup.com

 *

 *         2022-2-25

 */

public class MonotonicArrayTest

    @Test

    public void test()

        MonotonicArray test = new MonotonicArray();

        Assert.assertTrue(test.isMonotonic(new int[] 1234));

        Assert.assertTrue(test.isMonotonic(new int[] 134));

        Assert.assertTrue(test.isMonotonic(new int[] 100));

        Assert.assertTrue(test.isMonotonic(new int[] 9881));

        Assert.assertFalse(test.isMonotonic(new int[] 1324));

        Assert.assertFalse(test.isMonotonic(new int[] 141));

        Assert.assertFalse(test.isMonotonic(new int[] 101));

        Assert.assertFalse(test.isMonotonic(new int[] 10, -1,-2,-1));

    

以上是关于3591单调数列的主要内容,如果未能解决你的问题,请参考以下文章

3591单调数列

BZOJ3591: 最长上升子序列

[CSP-S模拟测试]:小P的单调数列(树状数组+DP)

1745. 单调数列

单调数列

896. 单调数列