跳到主要内容

1752.检查数组是否经排序和轮转得到

链接:1752.检查数组是否经排序和轮转得到
难度:Easy
标签:数组
简介:给你一个数组 nums 。nums 的源数组中,所有元素与 nums 相同,但按非递减顺序排列。如果  nums 能够由源数组轮转若干位置(包括 0 个位置)得到,则返回 true ;否则,返回 false 。

题解 1 - cpp

  • 编辑时间:2022-11-27
  • 执行用时:4ms
  • 内存消耗:8.2MB
  • 编程语言:cpp
  • 解法介绍:最多只有一次逆向,且只有一次逆向的时候首值要大于尾值。
class Solution {
public:
bool check(vector<int>& nums) {
int n = nums.size();
bool f = false;
for (int i = 1; i < n; i++) {
if (nums[i] < nums[i - 1]) {
if (f) return false;
f = true;
}
}
return !f || nums[0] >= nums[n - 1];
}
};