public class ExamTwo {     public static void main(String[] args) {         Scanner scanner = new Scanner(System.in); //        int cnt = Integer.parseInt(scanner.nextLine()); //        String s = scanner.nextLine();         String s = "1,-1,7,3";         String[] ss = s.split(",");         int[] array = new int[ss.length];         for (int i = 0; i < ss.length; i ++) {             array[i] = Integer.parseInt(ss[i]);         }         func(array);     }     public static void func(int[] array) {         int maxDis = Integer.MIN_VALUE;         int totalDis = 0;         // 计算如果不去掉点的实际路程         for (int i = 1; i < array.length; i ++) {             totalDis += Math.abs(array[i] - array[i - 1]);         }         // 获取一个点,假设有A, B, C三个点,||AB| + |BC| - |AC||,其结果为0 or 正数,         // 而这个正数就是进过B点所要多走的路程         for (int i = 1; i + 1 < array.length; i ++) {             maxDis = Math.max(maxDis, Math.abs(array[i] - array[i - 1]) + Math.abs(array[i + 1] - array[i]) - Math.abs(array[i + 1] - array[i - 1]));         }         System.out.println(totalDis - maxDis);     } }
点赞 评论

相关推荐

大叔叔1:你把自己说的话打码,所以你想表达什么
点赞 评论 收藏
分享
点赞 评论 收藏
分享
牛客网
牛客企业服务