给定前 N 个自然数的排列作为数组 A[ ]。您的任务是通过两次交换对数组进行排序。如果可以对数组进行排序,则返回 True,否则返回 False。
注意:您可以将同一对索引交换两次。如果只有一个元素,则无法执行交换。
示例 1:
输入:
N = 4
A[] = {4, 3, 2, 1}
输出:是
解释:
swap(A[1], A[4]),现在 A[] = {1, 3, 2, 4}
swap(A[2], A[3]),现在 A[] = {1, 2, 3, 4}
示例 2:
输入:
N = 4
A[] = {4, 3, 1, 2}
输出:否
解释:
无法在 2 次交换中对数组进行排序。
您的任务:
任务是完成函数 check(),该函数以数组 A[ ] 及其大小 N 作为输入参数,如果可以在 2 次交换中对数组进行排序,则返回布尔值 True,否则返回 False。
约束:
1 ≤ N ≤ 10(5)
1 ≤ A[i] ≤ N
--
直接循环遍历即可。每次遇到不一样的,就交换这个元素跟对应的元素。
这里面要多写个i--,这样可以一直判断,算是整个程序的中枢了,我就是没想到这个。。。
到此这篇ifstream读取文件遇到空格被截断(ifstream fin读取)的文章就介绍到这了,更多相关内容请继续浏览下面的相关 推荐文章,希望大家都能在编程的领域有一番成就!
版权声明:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权、违法违规、事实不符,请将相关资料发送至xkadmin@xkablog.com进行投诉反馈,一经查实,立即处理!
转载请注明出处,原文链接:https://www.xkablog.com/rfx/27773.html