今天这个有点意思 有点flag的感觉,但是又不太一样的样子
直接上题目
如果数组是单调递增或单调递减的,那么它是 单调 的。
如果对于所有 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;
bool increasing = true;
bool decreasing = true;
for (i = 0; i < numsSize - 1; i++) {
if (nums[i] > nums[i + 1]) {
increasing = false;
} else if (nums[i] < nums[i + 1]) {
decreasing = false;
}
// 如果既不递增也不递减,则不是单调数组
if (!increasing && !decreasing) {
return false;
}
}
return true;
}
意思就是 先设置一个i变量进行循环判断,然后设置decreaing和increasing来作为bool来判断,
接下来就是判断的正常基槽了。
比如123 如果第一个小于第二个的话 increasing是true decreasing是false
那么接下来执行下面的代码 如果increasing是false decreasing也是false,那么很简单 说明不是递增,也是不是递减的了
看了这道题目,我又多了一种思考问题的方法
真的厉害
评论 (0)