如果数组是单调递增或单调递减的,那么它是 单调 的。
如果对于所有 i <= j,nums[i] <= nums[j],那么数组 nums 是单调递增的。 如果对于所有 i <= j,nums[i]> = nums[j],那么数组 nums 是单调递减的。
当给定的数组 nums 是单调数组时返回 true,否则返回 false。
这个比较简单,我们首先得判断他是单调递增还是单调递减,因为它可能第一有重复的,所以我们直接第一个与最后一个来比,如果第一个大于或等于最后一个话,那么他就是单调递减的,所以我们就以这个为前提,来遍历数组,如果其中出现了前面的小于后面的,那么它就不是单调的,反之则是,同理,如果第一个小于或等于最后一个也是同样的做法。搭建好逻辑的话,就可以动手写代码了。
bool isMonotonic(int* nums, int numsSize) {
int i = 0;
if (nums[0] - nums[numsSize-1] >= 0)
{
for (i = 0; i < numsSize - 1; i++)
{
if (nums[i] - nums[i + 1] < 0)
return false;
}
}
else
{
for (i = 0; i < numsSize - 1; i++)
{
if (nums[i] - nums[i + 1] > 0)
return false;
}
}
return true;
}