输入一个列表(列表元素中无重复)…

输入一个列表(列表元素中无重复),最大的与第一个元素交换,再最小的与最后一个元素交换,输出处理后的列表。

输入格式:
输入一个列表(列表元素中无重复)

输出格式:
输出处理后的列表

输入样例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]))