百度之一个数轴上共有N个点,第一个点的坐标是度度熊现在位置,第N-1个点是度度熊的家。现在他需要依次的从0号坐标走到N-1号坐标。但是除了0号坐标和N-1号坐标,他可以在其余的N-2个坐标中选

来源:互联网 发布:java解析器是什么 编辑:程序博客网 时间:2024/06/01 23:47
import java.util.Scanner;/** * 一个数轴上共有N个点,第一个点的坐标是度度熊现在位置,第N-1个点是度度熊的家。现在他需要依次的从0号坐标走到N-1号坐标。 * 但是除了0号坐标和N-1号坐标,他可以在其余的N-2个坐标中选出一个点,并直接将这个点忽略掉,问度度熊回家至少走多少距离? *  * @author pomay * */public class Baidu_beargohome{public static void main(String[] args){Scanner sc = new Scanner(System.in);while (sc.hasNext()){int n = sc.nextInt();int minLength = 0;int[] a = new int[n];for (int i = 0; i < n; i++){a[i] = sc.nextInt();minLength += Math.abs(a[i] - a[Math.max(i - 1, 0)]);// 整条路径距离;}int surplus = 0;for (int i = 1; i < n - 1; i++){// 如果当前点到中间点再到后一点距离之和大于当前点直接到后一点的距离,就是多走的路int d = Math.abs(a[i - 1] - a[i]) + Math.abs(a[i] - a[i + 1]) - Math.abs(a[i - 1] - a[i + 1]);surplus = Math.max(surplus, d); // 找到这些多走的路中最大的一个距离}System.out.println(minLength - surplus); // 删除掉这个距离,就是度度熊回家至少走多少距离}}}

阅读全文
6 1
原创粉丝点击