题目

传送门

文本

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

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

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

示例 1:

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

输出:true

示例 2:

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

输出:true

示例 3:

输入:[1,3,2]

输出:false

示例 4:

输入:[1,2,4,5]

输出:true

示例 5:

输入:[1,1,1]

输出:true

提示:

1 <= A.length <= 50000
-100000 <= A[i] <= 100000

来源:力扣(LeetCode)

模板

bool isMonotonic(int* A, int ASize){

}

解题

分析

我们要完成的是对于这个数组判断其是否是单调数组,所以我们可以通过数据对比,让数组进行一个判断部分区间的增减状态,如果存在有不同的增减状态就不是单调数组。

所以既然是增减都存在的情况之下就会返回false那么我们可以理解为情况1和情况2

如果检测都第i个元素比第i+1个元素小,那么就是递增,这时候给递减标志打false,如果后面再遇上第i'元素比i'+1元素大,这个小区间就是递减,我们对递增标志打false。当两个标志都是false的时候就返回false,否则都返回true。所以两个标志之间的连接方式用||(或)来连接,这时候只有两个都是false才会返回false。

首先赋值两个标志

bool a=true,b=true;

进行内部循环判断,因为我们需要对于i和i+1进行判断所以我们最后的界限是ASize-1。

for( int i=0;i<ASize;++i){
if(A[i]>A[i+1])a=false;
if(A[i]<A[i+1])b=false;
}

至此对于增减判断一次遍历之后就结束了,我们最后返回也是重点

return a||b;

我们要实现的是对于a=False且b=False的情况返回false,所以只能用||来表达。

False||True=True;

True||True=True;

False||False=False;

完整源码

bool a=true,b=true;
for( int i=0;i<ASize-1;++i){
if(A[i]>A[i+1])a=false;
if(A[i]<A[i+1])b=false;
}
return a||b;

运行结果

力扣896. 单调数列-C语言实现-简单题的更多相关文章

  1. 力扣561. 数组拆分 I-C语言实现-简单题

    题目 传送门 给定长度为 2n 的整数数组 nums ,你的任务是将这些数分成 n 对, 例如 (a1, b1), (a2, b2), ..., (an, bn) ,使得从 1 到 n 的 min(a ...

  2. 力扣566. 重塑矩阵-C语言实现-简单题

    题目 传送门 在MATLAB中,有一个非常有用的函数 reshape,它可以将一个矩阵重塑为另一个大小不同的新矩阵,但保留其原始数据. 给出一个由二维数组表示的矩阵,以及两个正整数r和c,分别表示想要 ...

  3. 力扣832. 翻转图像-C语言实现-简单题

    题目 传送门 文本 给定一个二进制矩阵 A,我们想先水平翻转图像,然后反转图像并返回结果. 水平翻转图片就是将图片的每一行都进行翻转,即逆序.例如,水平翻转 [1, 1, 0] 的结果是 [0, 1, ...

  4. LeetCode 896. 单调数列(Monotonic Array)

    896. 单调数列 896. Monotonic Array 题目描述 如果数组是单调递增或单调递减的,那么它是单调的. 如果对于所有 i<=j,A[i]<=A[j],那么数组 A 是单调 ...

  5. 力扣485. 最大连续1的个数-C语言实现-简单题

    题目 [题目传送门] 给定一个二进制数组, 计算其中最大连续1的个数. 示例 1: 输入: [1,1,0,1,1,1] 输出: 3 解释: 开头的两位和最后的三位都是连续1,所以最大连续1的个数是 3 ...

  6. 力扣643.子数组最大平均数I-C语言实现

    题目 给定 n 个整数,找出平均数最大且长度为 k 的连续子数组,并输出该最大平均数. 示例: 输入:[1,12,-5,-6,50,3], k = 4 输出:12.75 解释:最大平均数 (12-5- ...

  7. 力扣567.字符串的排列—C语言实现

    题目 来源:力扣(LeetCode)

  8. 力扣119.杨辉三角II-C语言实现

    题目 给定一个非负索引 k,其中 k ≤ 33,返回杨辉三角的第 k 行. 在杨辉三角中,每个数是它左上方和右上方的数的和. 示例: 输入: 3 输出: [1,3,3,1] 来源:力扣(LeetCod ...

  9. 力扣1689. 十-二进制数的最少数目-C语言实现-中等难度题

    题目 传送门 如果一个十进制数字不含任何前导零,且每一位上的数字不是 0 就是 1 ,那么该数字就是一个 十-二进制数 .例如,101 和 1100 都是 十-二进制数,而 112 和 3001 不是 ...

随机推荐

  1. C++的匿名函数(lambda表达式)

    总述  C++11提供了对匿名函数的支持,称为Lambda函数(也叫Lambda表达式). 它是定义和使用匿名函数对象的一种简便的方式.匿名函数是我们需要用到的一个函数,但是又不想去费力命名一个函数的 ...

  2. HHKB Programming Contest 2020【ABCE】

    比赛链接:https://atcoder.jp/contests/hhkb2020/tasks A - Keyboard 代码 #include <bits/stdc++.h> using ...

  3. AtCoder Beginner Contest 170

    比赛链接:https://atcoder.jp/contests/abc170 A - Five Variables 题意 $5$ 个数中有 $1$ 个 $0$,判断是第几个. 代码 #include ...

  4. AtCoder Beginner Contest 162

    比赛链接:https://atcoder.jp/contests/abc162/tasks A - Lucky 7 #include <bits/stdc++.h> using names ...

  5. Codeforces Beta Round #92 (Div. 2 Only) B. Permutations

    You are given n k-digit integers. You have to rearrange the digits in the integers so that the diffe ...

  6. 快速获取 Wi-Fi 密码——GitHub 热点速览 v.21.06

    作者:HelloGitHub-小鱼干 还有 2 天开启春节七天宅家生活,GitHub 也凑了一把春节热闹,wifi-password 连续霸榜 3 天,作为一个能快速让你连上 Wi-Fi 的小工具,春 ...

  7. pthread_create函数

    函数简介 pthread_create是UNIX环境创建线程函数 头文件 #include<pthread.h> 函数声明 int pthread_create(pthread_t *re ...

  8. ESLint & husky & git commit limit

    ESLint & husky & git commit limit 2 == error .eslintrc { "extends": "eslint-c ...

  9. 如何在Python 中使用UTF-8 编码 && Python 使用 注释,Python ,UTF-8 编码 , Python 注释

    如何在Python 中使用UTF-8 编码 && Python 使用 注释,Python ,UTF-8 编码 , Python  注释 PIP $ pip install beauti ...

  10. WebGL Programming Guide All In One

    WebGL Programming Guide All In One WebGL WebGL Programming Guide All In One Publication date: July 2 ...