百度面试题 度度熊回家
来源:互联网 发布:java环境变量设置win7 编辑:程序博客网 时间:2024/06/05 06:53
时间限制:1秒
空间限制:32768K
一个数轴上共有N个点,第一个点的坐标是度度熊现在位置,第N-1个点是度度熊的家。现在他需要依次的从0号坐标走到N-1号坐标。
但是除了0号坐标和N-1号坐标,他可以在其余的N-2个坐标中选出一个点,并直接将这个点忽略掉,问度度熊回家至少走多少距离?
但是除了0号坐标和N-1号坐标,他可以在其余的N-2个坐标中选出一个点,并直接将这个点忽略掉,问度度熊回家至少走多少距离?
输入描述:
输入一个正整数N, N <= 50。接下来N个整数表示坐标,正数表示X轴的正方向,负数表示X轴的负方向。绝对值小于等于100
输出描述:
输出一个整数表示度度熊最少需要走的距离。
输入例子1:
41 4 -1 3
输出例子1:
4解题思路: 题目说法有些不准确,其实就是第一个点为当前位置,最后一个点为家, 需要依次走过这些点回家,可以跳过中间某一个点,求至少距离。 先求出走过所有的点的距离的总和 再求出跳过某个点后跳过的最大距离 最后用总和减去跳过最大距离 就是跳过某个点后 至少走的最短距离 跳过某个点的距离为: |前一个点-这个点| +|这个点-后一个点|-|前一个点-后一个点| //关键就是需要减去 前一个点到后一个点的距离 才是跳过这个点的距离java源代码:import java.util.*; public class MinDistanceGoHome{ public static void main(String[] args) {Scanner sc = new Scanner(System.in); int count =sc.nextInt();int sumD=0;//记录所有点都走之后的总距离int []d =new int[count];d[0]=sc.nextInt();for(int i=1;i<count;i++){d[i]=sc.nextInt();sumD+=Math.abs(d[i]-d[i-1]);//求和}//找出跳过某个点后 跳过的最大距离int maxSuff=0;for(int i=1;i<count-1;i++){//跳过某一个点 所跳过的距离为 |前一个点-这个点| +|这个点-后一个点|-|前一个点-后一个点|//关键就是需要减去 前一个点到后一个点的距离 才是跳过这个点的距离int distance =Math.abs(d[i]-d[i-1])+Math.abs(d[i]-d[i+1])-Math.abs(d[i-1]-d[i+1]);if(distance>maxSuff)maxSuff=distance;}System.out.println(sumD-maxSuff);}}
阅读全文
0 0
- 百度面试题 度度熊回家
- 百度:度度熊回家
- 百度面试题
- 百度面试题
- 百度面试题
- 百度面试题
- 百度面试题
- 2007 百度面试题
- 百度面试题一道
- 百度面试题
- 百度面试题
- 百度面试题
- 百度面试题
- 百度面试题
- 百度面试题
- 百度面试题
- 百度面试题1
- 百度面试题
- Python异常处理
- 荣耀盒子如何连接电视机/电脑显示器/投影仪设备
- idea设置tomcat虚拟路径的两种方法
- js fileReader处理文件
- Spring IOC bean 的作用域
- 百度面试题 度度熊回家
- vue+iview 当v-for不渲染问题 因为遇到Modal组件
- struts2和前端通过json交互时数据解析问题
- 设计模式——享元模式
- WinSCP
- MFC 启用和禁用控件
- MongoDB学习笔记(一)
- Java中不同时区时间的转换
- ubuntu 配置证书登录