艾艺公司团队定制seo关键词快速排名前三位
[题目描述]
 给你一个 1−>n 的排列,现在有一次机会可以交换两个数的位置,求交换后最小值和最大值之间的最大距离是多少?
输入格式:
 输入共两行。
 第一行一个数 n 。
 第二行 n 个数表示这个排列。
输出格式:
 输出一行一个数表示答案。
样例输入
 5
 4 5 1 3 2
样例输出
 3
数据范围
 对于 100% 的数据,保证1≤n≤100。
样例解释:
 把 1 和 2 交换后,序列为 4 5 2 3 1,最大值 5 在数组的 2 位置,最小值 1 在数组的 5 位置,距离为 3。
 来源/分类(难度系数:三星)
枚举 模拟 
完整代码展示:
 n=int(input())
 list_1=list(map(int,input().split()))
 list_2=[]
 list_3=[]
 for i in range(0,len(list_1)):
       if list_1[i]==max(list_1):
           list_2.append(i+1)
      elif list_1[i]==min(list_1):
           list_3.append(i+1)
 list_4=[abs(list_2[0]-1),abs(list_2[0]-len(list_1)),abs(list_3[0]-1),abs(list_3[0]-len(list_1))]
 print(len(list_1)-min(list_4)-1)
代码解释:
 “n=int(input())
  list_1=list(map(int,input().split())) ”,让用户输入数值的数量n,接着让用户依次输入各数值,并将其储存在列表list_1中。
 “list_2=[]
  list_3=[]
  for i in range(0,len(list_1)):
        if list_1[i]==max(list_1):
             list_2.append(i+1)
       elif list_1[i]==min(list_1):
             list_3.append(i+1)     ”,建立两个空列表list_2,list_3,接着依次遍历列表list_1中的元素,将list_1中的最大元素的位置添加进list_2中,最小元素的位置添加进list_3中。
 “list_4=[abs(list_2[0]-1),abs(list_2[0]-   len(list_1)),abs(list_3[0]-1),abs(list_3[0]-len(list_1))]                                                       ”,分别将list_2,list_3中的元素减去1或len(list_1)的绝对值储存在列表list_4中。
 “print(len(list_1)-min(list_4)-1)  ”,打印len(list_1)-min(list_4)-1的结果。
运行效果展示:

  (声明:以上内容均为原创)
