广州建设厅电工网站,长沙seo网站排名优化,网站建设收费标准报价,无锡做网站设计的企业如果数组是单调递增或单调递减的#xff0c;那么它是 单调 的。
如果对于所有 i j#xff0c;nums[i] nums[j]#xff0c;那么数组 nums 是单调递增的。 如果对于所有 i j#xff0c;nums[i] nums[j]#xff0c;那么数组 nums 是单调递减的。
当给定…如果数组是单调递增或单调递减的那么它是 单调 的。
如果对于所有 i jnums[i] nums[j]那么数组 nums 是单调递增的。 如果对于所有 i jnums[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 思路
首先函数检查nums的长度是否小于或等于2如果是那么就直接返回true因为长度小于或等于2的数组总是单调的。
然后函数使用一个迭代器it1遍历nums的每一个元素从第一个元素开始。在每次循环中计算当前元素和下一个元素的差diff如果diff不为0那么就停止循环。
如果遍历完所有元素都没有找到非零的diff那么就返回true表示nums是单调的。
然后函数检查diff的符号。如果diff大于0那么就使用一个循环遍历nums的每一个元素如果当前元素小于前一个元素那么就返回false因为这个数组不是递增的。如果diff小于0那么就使用一个循环遍历nums的每一个元素如果当前元素大于前一个元素那么就返回false因为这个数组不是递减的。
如果遍历完所有元素都没有返回false那么就返回true表示nums是单调的。 AC代码
/** lc appleetcode.cn id896 langcpp** [896] 单调数列*/// lc codestart
class Solution {public:bool isMonotonic(vectorint nums) {if (nums.size() 2) {return true;}auto it1 nums.begin();int diff *(it1 1) - *it1;while (it1 ! nums.end() - 2 !diff) {it1;diff *(it1 1) - *it1;}if (!diff) {return true;}int tmp nums.front();if (diff 0) {for (const int i : nums) {if (i tmp) {return false;}tmp i;}} else {for (const int i : nums) {if (i tmp) {return false;}tmp i;}}return true;}
};
// lc codeend