0
点赞
收藏
分享

微信扫一扫

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


链接: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[] {1, 2, 3, 4}));

Assert.assertTrue(test.isMonotonic(new int[] {1, 3, 4}));

Assert.assertTrue(test.isMonotonic(new int[] {1, 0, 0}));

Assert.assertTrue(test.isMonotonic(new int[] {9, 8, 8, 1}));

Assert.assertFalse(test.isMonotonic(new int[] {1, 3, 2, 4}));

Assert.assertFalse(test.isMonotonic(new int[] {1, 4, 1}));

Assert.assertFalse(test.isMonotonic(new int[] {1, 0, 1}));

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

}

}


举报

相关推荐

0 条评论