输入一个列表(列表元素中无重复),最大的与第一个元素交换,再最小的与最后一个元素交换,输出处理后的列表。
输入格式:
输入一个列表(列表元素中无重复)
输出格式:
输出处理后的列表
输入样例1:
[9,2,3,49,4,8]
结尾无空行
输出样例1:
[49, 8, 3, 9, 4, 2]
结尾无空行
输入样例2:
[1,2,100,5,7,6]
结尾无空行
输出样例2:
[100, 2, 6, 5, 7, 1]
结尾无空行
作者
陈丹
单位
浙大城市学院
代码长度限制
16 KB
时间限制
400 ms
内存限制
6
resultlist = eval(input())
max_num = max(resultlist) # 将列表当中的最大值赋值给max_num
min_num = min(resultlist) # 将列表当中的最小值赋值给min_num
resultlist[resultlist.index(max_num)] = resultlist[0] # 将列表中的第一个值换成最大的值
resultlist[0] = max_num # 将列表中的最大值换成列表的第一个值
resultlist[(resultlist.index(min_num))] = resultlist[-1] # 将列表中的最后一个值换成最小的值
resultlist[-1]= min_num # 将列表中最小值 赋值给最后一个值
print(resultlist)
class Solution:
def changeMaxMin(self, nums):
if len(nums) < 2: # 如果nums中元素个数小于2, 无法交换, 返回原数组
return nums
"""
思路: 遍历整个数组, 找到最大值最小值, 然后与第一个和最后一个元素交换位置即可
"""
MAX_num, MIN_num = -float("INF"), float("INF")
MAX_pos, MIN_pos = -1, -1 # 最大最小数的位置, 用于交换
# 找最大
for i in range(len(nums)):
if nums[i] > MAX_num:
MAX_num = nums[i]
MAX_pos = i
# 交换操作
nums[0], nums[MAX_pos] = nums[MAX_pos], nums[0]
# 找最小
for i in range(len(nums)):
if nums[i] < MIN_num:
MIN_num = nums[i]
MIN_pos = i
# 交换操作
nums[-1], nums[MIN_pos] = nums[MIN_pos], nums[-1]
return nums
x = Solution()
print(x.changeMaxMin([1,2,100,5,7,6]))