您的位置:首页 > 其它

度度熊回家

2018-03-20 11:06 411 查看
时间限制:1秒空间限制:32768K一个数轴上共有N个点,第一个点的坐标是度度熊现在位置,第N-1个点是度度熊的家。现在他需要依次的从0号坐标走到N-1号坐标。
但是除了0号坐标和N-1号坐标,他可以在其余的N-2个坐标中选出一个点,并直接将这个点忽略掉,问度度熊回家至少走多少距离?
先说思路:
    1、首先计算出熊总的需要走的距离

    2、求最大多行走距离

    3、前者减去后者结果输出

备注:具体的代码细节在下面的注释中
import java.util.*;
public class Main {
public static void main(String []args) {
Scanner sca = new Scanner(System.in);
int count = sca.nextInt();
int []a = new int[count];
//求路径总长变量sum
int sum = 0;
for(int i=0;i<count;i++) {
a[i] = sca.nextInt();
sum += Math.abs(a[i] - a[Math.max(i-1,0)]);
}
//求最大多行走距离
int diff = 0;
//注意i的起始跟终止条件 legth的由来:比如3个点,将1到2跟2到3的距离相加,减去直接1到3的距离,这样就是省去的距离
for(int i=1;i<count-1;i++) {int legth = Math.abs(a[i] - a[i-1]) + Math.abs(a[i] - a[i+1]) - Math.abs(a[i-1] - a[i+1]);
diff = Math.max(diff,legth);
}
System.out.println(sum - diff);

}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: