[编程题] 度度熊回家
来源:互联网 发布:java工作流开发 编辑:程序博客网 时间:2024/06/05 08:01
时间限制:1秒空间限制:32768K
一个数轴上共有N个点,第一个点的坐标是度度熊现在位置,第N-1个点是度度熊的家。现在他需要依次的从0号坐标走到N-1号坐标。
但是除了0号坐标和N-1号坐标,他可以在其余的N-2个坐标中选出一个点,并直接将这个点忽略掉,问度度熊回家至少走多少距离?
输入描述:
输入一个正整数N, N <= 50。
接下来N个整数表示坐标,正数表示X轴的正方向,负数表示X轴的负方向。绝对值小于等于100
输出描述:
输出一个整数表示度度熊最少需要走的距离。
输入例子:
41 4 -1 3
输出例子:
4
代码:
#include <iostream>#define MAX_NUM 50using namespace std;int main(){ int N; cin >> N; int n[MAX_NUM] = { 0 }; int dist[MAX_NUM] = { 0 }; int delDist[MAX_NUM] = { 0 }; for (int i = 0; i < N; i++){ cin >> n[i]; } //求相邻俩点的距离 for (int i = 0; i < N -1; i++){ int j = i + 1; dist[i] = n[j] - n[i]; if (dist[i] < 0){ dist[i] = -dist[i]; } } int sum = 0; //求不减点的话的距离和 for (int i = 0; i < N - 1; i++){ sum += dist[i]; } for (int i = 1; i < N - 1; i++){ int temp = n[i + 1] - n[i - 1]; if (temp < 0) temp = -temp; delDist[i] = dist[i - 1] + dist[i] - (temp);//没删除之前比删除多的距离 } int maxDist = delDist[1]; for (int i = 2; i < N - 1; i++){ if (maxDist < delDist[i]) maxDist = delDist[i]; } int currDist = sum - maxDist; cout << currDist; return 0;}
3 0
- [编程题] 度度熊回家
- [编程题] 度度熊回家
- [编程题] 度度熊回家
- 编程题(度度熊回家最短距离)
- 【算法题】度度熊回家
- 2--百度2017春招笔试真题编程题集合--度度熊回家 (Python)
- 百度2017春招笔试真题编程题集合--度度熊回家
- 百度2017春招笔试真题[编程题] 度度熊回家
- 百度2017春招笔试真题编程题集合:度度熊回家 [python]
- 度度熊回家
- 度度熊回家
- 度度熊回家
- 名企笔试:百度2017春招笔试真题编程题(度度熊回家)2017-05-18 算法爱好者
- 【编程马拉松】【016-过年回家】
- 牛客网 度度熊回家
- 百度:度度熊回家
- 算法之度度熊回家
- 度度熊回家问题
- Java finally
- ascii码 iso 8859-1 Unicode 字符编码 UTF8编码 区别 表格
- 整理自认为有用的Visual Studio 快捷键
- TCP连接的状态与关闭方式,及其对Server与Client的影响
- PSD网页切图制作HTML全过程教程
- [编程题] 度度熊回家
- JavaScript数据结构之数组栈队列
- PHP设计模式系列(七):外观模式
- 根据文件头判断文件类型
- linux下C结构体初始化
- 前端技术
- (POJ 3067)Japan 树状数组
- Qt多线程总结
- CSU-1212-中位数