微信网站建设咨询,关键词优化公司网站,e4a怎么做网站app,风中有朵雨做的云网站观看[题目描述] 给你一个 1−n 的排列#xff0c;现在有一次机会可以交换两个数的位置#xff0c;求交换后最小值和最大值之间的最大距离是多少#xff1f;输入格式#xff1a; 输入共两行。 第一行一个数 n 。 第二行 n 个数表示这个排列。输出格式#xff1a; 输出一行一…[题目描述] 给你一个 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。 来源/分类(难度系数三星)枚举 模拟
完整代码展示 nint(input()) list_1list(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(i1) elif list_1[i]min(list_1): list_3.append(i1) 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)
代码解释 “nint(input()) list_1list(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(i1) elif list_1[i]min(list_1): list_3.append(i1) ”建立两个空列表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的结果。
运行效果展示 声明以上内容均为原创