leecode.1752. 检查数组是否经排序和轮转得到
发布日期:2021-06-20 02:50:09
浏览次数:5
分类:技术文章
本文共 767 字,大约阅读时间需要 2 分钟。
题目
给你一个数组 nums 。nums 的源数组中,所有元素与 nums 相同,但按非递减顺序排列。
如果 nums 能够由源数组轮转若干位置(包括 0 个位置)得到,则返回 true ;否则,返回 false 。
源数组中可能存在 重复项 。
注意:我们称数组 A 在轮转 x 个位置后得到长度相同的数组 B ,当它们满足 A[i] == B[(i+x) % A.length] ,其中 % 为取余运算。
示例一
输入:nums = [3,4,5,1,2]
输出:true 解释:[1,2,3,4,5] 为有序的源数组。 可以轮转 x = 3 个位置,使新数组从值为 3 的元素开始:[3,4,5,1,2] 。思路分析
因为原数组是有序的,所以我们根据顺序的分界点可以找出来平移的位置,从而进行对比。
代码
class Solution { public: bool check(vector & nums) { vector origin = nums; sort(origin.begin(), origin.end()); int n = nums.size(), x = 1; if(nums == origin) return true; while(x < n && nums[x - 1] <= nums[x]) x++; for(int i = 0;i < n;i++){ if(nums[(i + x) % n] != origin[i]) return false; } return true; }};
转载地址:https://blog.csdn.net/free1993/article/details/114291682 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
关注你微信了!
[***.104.42.241]2024年04月09日 21时53分05秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
CSS控制段落和文字属性和背景
2021-06-29
Python语言开发工具
2021-06-29
Requests库的入门
2019-04-26
Robots协议
2019-04-26
Python网络爬虫的网站实例
2019-04-26
HTML学习思维导图
2019-04-26
h标签与p标签
2019-04-26
BeautifulSoup库的安装及基本元素
2019-04-26
基于bs4的HTML内容遍历方法
2019-04-26
信息标记与信息提取
2019-04-26
各大网站CSS初始化代码
2019-04-26
正则表达式的基本用法
2019-04-26
Python的Re库(正则表达式)基本用法
2019-04-26
Scrapy爬虫框架
2019-04-26
Anaconda
2019-04-26
NumPy库入门
2019-04-26
简单的留言板网页
2019-04-26
如何快速的搭建Apache+MySQL+PHP+PERL的环境
2019-04-26
初识JavaScript
2019-04-26
JavaScript的常用互动方法
2019-04-26