对称排序
题目
题目分析
1.因为数字是对称交换,所以我们只需要判断前n/2项需不需要交换就好了
2.这里我采用了升序排序,你们也可以尝试降序排序
3.我们只需要排序好后再遍历一下整个数组,找出不符合排序的就输出NO就好了
代码
#include<iostream> #include<bits/stdc++.h> using namespace std; int main() { int n; cin >> n; long long int num[100000]; for (int i = 1; i < n+1; i++) { cin >> num[i]; } for (int i = 1; i < n+1; i++) { int A = i; int B = n + 1 - i; if (A > B) { break; } if (num[A] > num[B]) { swap(num[A], num[B]); } } for (int i = 2; i <= n; i++) { if (num[i] < num[i - 1]) { cout << "NO" << endl; return 0; } } cout << "YES" << endl; return 0; }
标签:排序,int,C++,蓝桥,num,对称,例题 From: https://www.cnblogs.com/hcrzhi/p/18121564