赶去公司--网易2017春招实习笔试编程题2
来源:互联网 发布:有没有写真软件 编辑:程序博客网 时间:2024/04/28 12:23
时间限制:1秒
空间限制:32768K
终于到周末啦!小易走在市区的街道上准备找朋友聚会,突然服务器发来警报,小易需要立即回公司修复这个紧急bug。假设市区是一个无限大的区域,每条街道假设坐标是(X,Y),小易当前在(0,0)街道,办公室在(gx,gy)街道上。小易周围有多个出租车打车点,小易赶去办公室有两种选择,一种就是走路去公司,另外一种就是走到一个出租车打车点,然后从打车点的位置坐出租车去公司。每次移动到相邻的街道(横向或者纵向)走路将会花费walkTime时间,打车将花费taxiTime时间。小易需要尽快赶到公司去,现在小易想知道他最快需要花费多少时间去公司。
您的代码已保存输入描述:
输入数据包括五行:第一行为周围出租车打车点的个数n(1 ≤ n ≤ 50)第二行为每个出租车打车点的横坐标tX[i] (-10000 ≤ tX[i] ≤ 10000)第三行为每个出租车打车点的纵坐标tY[i] (-10000 ≤ tY[i] ≤ 10000)第四行为办公室坐标gx,gy(-10000 ≤ gx,gy ≤ 10000),以空格分隔第五行为走路时间walkTime(1 ≤ walkTime ≤ 1000)和taxiTime(1 ≤ taxiTime ≤ 1000),以空格分隔
输出描述:
输出一个整数表示,小易最快能赶到办公室的时间
输入例子1:
2-2 -20 -2-4 -215 3
输出例子1:
42
答案正确:恭喜!您提交的程序通过了所有的测试用例
import java.util.Scanner;public class Main {// 第一行为周围出租车打车点的个数n(1 ≤ n ≤ 50)//// 第二行为每个出租车打车点的横坐标tX[i] (-10000 ≤ tX[i] ≤ 10000)//// 第三行为每个出租车打车点的纵坐标tY[i] (-10000 ≤ tY[i] ≤ 10000)//// 第四行为办公室坐标gx,gy(-10000 ≤ gx,gy ≤ 10000),以空格分隔//// 第五行为走路时间walkTime(1 ≤ walkTime ≤ 1000)和taxiTime(1 ≤ taxiTime ≤ 1000),以空格分隔// 思路:先算出直接走路的时间,再将每一个打车的情况算出来,同时计算出走到打车点的时间,找到最小值即可 //只可打车一次,不能打车两次或多次 public int minTime(int txNum, int[] tX, int[] tY, int gx, int gy, int walkTime, int taxiTime) { int sumWalkTime = (Math.abs(gx) + Math.abs(gy)) * walkTime; int subWalkTime = 0, subTaxiTime = 0; int min = Integer.MAX_VALUE; for (int i = 0; i < txNum; i++) { subWalkTime = (Math.abs(tX[i]) + Math.abs(tY[i])) * walkTime;// subTaxiTime = (Math.abs(Math.abs(tX[i]) - Math.abs(gx)) + Math.abs(Math.abs(tY[i]) - Math.abs(gy))) * 3;//错误的 subTaxiTime = (Math.abs(tX[i] -gx) + Math.abs(tY[i] - gy)) * taxiTime; min = Math.min(min, subWalkTime + subTaxiTime); } return Math.min(min, sumWalkTime); } public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int txNum = scanner.nextInt(); int[] tX = new int[txNum]; int[] tY = new int[txNum]; int i = 0; while (scanner.hasNext() && i < txNum) { tX[i] = scanner.nextInt(); i++; } i = 0; while (scanner.hasNext() && i < txNum) { tY[i] = scanner.nextInt(); i++; } int gx = scanner.nextInt(); int gy = scanner.nextInt(); int walkTime = scanner.nextInt(); int taxiTime = scanner.nextInt(); System.out.println(new Main().minTime(txNum, tX, tY, gx, gy, walkTime, taxiTime));//输出42 }}
阅读全文
0 0
- 赶去公司--网易2017春招实习笔试编程题2
- 网易2017春招[编程题]赶去公司@Java
- 网易2017春招编程题:赶去公司 [python]
- 网易春招2017真题2——赶去公司
- 网易2017年暑期实习编程题之赶去公司
- 集合--网易2017春招实习笔试编程题7
- 名企笔试:网易游戏2017招聘笔试题(赶去公司)
- 网易2017年实习生NLP岗编程题--赶去公司
- 【网易2017实习生编程题】赶去公司 调整队形 消除重复元素
- [编程题] 赶去公司
- [编程题] 赶去公司
- 双核处理--网易2017春招实习笔试编程题1
- 调整队形--网易2017春招实习笔试编程题3
- 消除重复元素--网易2017春招实习笔试编程题4
- 魔力手环--网易2017春招实习笔试编程题
- 工作安排--网易2017春招实习笔试编程题6
- 奇怪的表达式求值--网易2017春招实习笔试编程题8
- 涂棋盘--网易2017春招实习笔试编程题9
- 研华IO控制卡硬件接线方式
- Greenplum列存压缩表索引机制
- 算法学习之旅,初级篇(3)--海明距离
- Django 杂记
- HDU6103---Kirinriki(2017多校联赛:滑动窗)
- 赶去公司--网易2017春招实习笔试编程题2
- 四轴飞行diy全套入门教程(从最基础的开始) & 导线的知识入门(细节决定内涵)
- 浅谈对象
- CSS 样式问题(important)
- 位置服务示例
- 最小花费
- Prime Gap (二分法)
- hadoop架构分析之启动脚本分析(hdfs部分)
- 数字图像之拉普拉斯算子(opencv)