打赏

笔试题算法系列(六)百度度度熊回家

时间限制:1秒

空间限制:32768K

一个数轴上共有N个点,第一个点的坐标是度度熊现在位置,第N-1个点是度度熊的家。现在他需要依次的从0号坐标走到N-1号坐标。
但是除了0号坐标和N-1号坐标,他可以在其余的N-2个坐标中选出一个点,并直接将这个点忽略掉,问度度熊回家至少走多少距离?

输入描述:
输入一个正整数N, N <= 50。
接下来N个整数表示坐标,正数表示X轴的正方向,负数表示X轴的负方向。绝对值小于等于100
输出描述:
输出一个整数表示度度熊最少需要走的距离。
输入例子1:
4
1 4 -1 3
输出例子1:
4

代码如下:
 1 import java.lang.Math;
 2 import java.util.Scanner;
 3 public class Main{
 4     public static void main(String[] args){
 5         Scanner sc = new Scanner(System.in);
 6         String[] line;
 7         while(sc.hasNext()){
 8             line = sc.nextLine().split(" ");
 9             int n = Integer.parseInt(line[0]);
10             line = sc.nextLine().split(" ");
11             int[] dot = new int[n];
12             for(int i=0; i<n; i++){
13                 dot[i] = Integer.parseInt(line[i]);
14             }
15             int minDistance = Integer.MAX_VALUE;
16             for(int i=1; i<n-1; i++){
17                 int distance = 0;
18                 for(int j=1; j<n; j++){
19                     if(j==i){
20                         j++;
21                         distance += Math.abs(dot[j]-dot[j-2]);
22                     }else{
23                         distance += Math.abs(dot[j]-dot[j-1]);
24                     }
25                 }
26                 if(distance < minDistance){
27                     minDistance = distance;
28                 }
29             }
30             System.out.println(minDistance);
31         }
32         sc.close();
33     }
34 }

 

posted @ 2019-04-01 18:45  海米傻傻  阅读(452)  评论(0编辑  收藏  举报