力扣照常更新896 单调数列
侧边栏壁纸
博主昵称
小菩提

业精于勤,荒于嬉。行成于思,毁于随。

  • 累计撰写 92 篇文章
  • 累计收到 11 条评论

力扣照常更新896 单调数列

haimian
2024-11-08 / 0 评论 / 5 阅读 / 正在检测是否收录...
温馨提示:
本文最后更新于2024年11月08日,已超过169天没有更新,若内容或图片失效,请留言反馈。

今天这个有点意思 有点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,那么很简单 说明不是递增,也是不是递减的了

m38wn63y.png

看了这道题目,我又多了一种思考问题的方法
真的厉害

0

评论 (0)

取消