本题要求编写程序,先将输入的一系列整数中的最小值与第一个数交换,然后将最大值与最后一个数交换,最后输出交换后的序列。 注意:题目保证最大和最小值都是唯一的。 输入格式: 输入在第一行中给出一个正整数n(≤10),第二行给出n个整数,数字间以空格分隔。 输出格式: 在一行中顺序输出交换后的序列,每个整数后跟一个空格。 输入样例: 5 8 2 5 1 4 输出样例: 1 2 5 4 8
时间: 2023-05-31 11:20:24 浏览: 211
### 回答1:
思路:先找到最小值和最大值的下标,然后进行交换。
Python代码:
n = int(input())
nums = list(map(int, input().split()))
# 找到最小值和最大值的下标
min_index = nums.index(min(nums))
max_index = nums.index(max(nums))
# 交换最小值和第一个数
nums[], nums[min_index] = nums[min_index], nums[]
# 如果最大值是第一个数,交换后最大值的下标变为min_index
if max_index == :
max_index = min_index
# 交换最大值和最后一个数
nums[-1], nums[max_index] = nums[max_index], nums[-1]
# 输出交换后的序列
print(' '.join(map(str, nums)))
### 回答2:
题目描述
本题要求编写程序,先将输入的一系列整数中的最小值与第一个数交换,然后将最大值与最后一个数交换,最后输出交换后的序列。
注意:题目保证最大和最小值都是唯一的。
输入格式:
输入在第一行中给出一个正整数n(≤10),第二行给出n个整数,数字间以空格分隔。
输出格式:
在一行中顺序输出交换后的序列,每个整数后跟一个空格。
输入样例:
5 8 2 5 1 4
输出样例:
1 2 5 4 8。
算法1
(模拟) $O(n)$
思路
根据题意模拟即可:
1. 找到最小值,与第一个数交换
2. 找到最大值,与最后一个数交换
时间复杂度
遍历一次数组,$O(n)$
C++ 代码
算法2
(暴力枚举) $O(n^2)$
blablabla
时间复杂度
参考文献
C++ 代码
### 回答3:
题目描述
编写程序,先将输入的一系列整数中的最小值与第一个数交换,然后将最大值与最后一个数交换,最后输出交换后的序列。
注意:题目保证最大和最小值都是唯一的。
输入格式:
输入在第一行中给出一个正整数n(≤10),第二行给出n个整数,数字间以空格分隔。
输出格式:
在一行中顺序输出交换后的序列,每个整数后跟一个空格。
输入样例:
5
8 2 5 1 4
输出样例:
1 2 5 4 8
算法1
C++ 代码
阅读全文