题解
【入门】移动数组元素
1 条题解
-
0
解题思路
把数组最小值和第一个数交换,最大值和最后一个数交换。
先找最小值位置交换到开头,再找最大值位置交换到末尾。
参考代码
#include <iostream> using namespace std; int main() { int n, a[100]; cin >> n; for (int i = 0; i < n; i++) cin >> a[i]; // 找最小数的位置 int mi = 0; for (int i = 1; i < n; i++) { if (a[i] < a[mi]) mi = i; } swap(a[0], a[mi]); // 找最大数的位置 int ma = 0; for (int i = 1; i < n; i++) { if (a[i] > a[ma]) ma = i; } swap(a[n - 1], a[ma]); for (int i = 0; i < n; i++) cout << a[i] << ' '; cout << endl; return 0; }O(N) 时间,O(N) 空间
- 1