博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MOOC_Java进阶_翁恺讲_第三周题
阅读量:5895 次
发布时间:2019-06-19

本文共 4622 字,大约阅读时间需要 15 分钟。

package mooc_java进阶_d3周题;/** * 没有使用HashMap */import java.util.ArrayList;import java.util.Scanner;public class Main {    public static void main(String[] args) {        Scanner in = new Scanner(System.in);        String stopSymbol = "###";        int cityNumbers = 0;        boolean goOn = true;        ArrayList
citys = new ArrayList
(); while (goOn) { String cityOnly = in.next(); if (cityOnly.equals(stopSymbol)) { break; } else { citys.add(cityOnly); } } cityNumbers = citys.size(); int n = cityNumbers; Scanner in1 = new Scanner(System.in); int allN = n * n; int[] matrix = new int[allN]; for (int i = 0; i < matrix.length; i++) { matrix[i] = in1.nextInt(); } Scanner in3 = new Scanner(System.in); String[] twoCitys = new String[2]; twoCitys[0] = in3.next(); twoCitys[1] = in3.next(); int count = 0; int firstCityIndex = 0; int secondCityIndex = 0; for (int j = 0; j < 2; j++) { for (int i = 0; i < n; i++) { if (citys.get(i).equals(twoCitys[j])) { count++; if (count == 1) { firstCityIndex = i; } else if (count == 2) { secondCityIndex = i; } else { } } } } int leftCityIndex = 0; int rightCityIndex = 0; int city_D_value = 0; int li; int liInMat; if (firstCityIndex < secondCityIndex) { leftCityIndex = firstCityIndex; li = leftCityIndex; liInMat = li * n + li; city_D_value = secondCityIndex - firstCityIndex; rightCityIndex = liInMat + city_D_value; } else if (firstCityIndex > secondCityIndex) { leftCityIndex = secondCityIndex; li = leftCityIndex; liInMat = li * n + li; city_D_value = firstCityIndex - secondCityIndex; rightCityIndex = liInMat + city_D_value; } else { } int distance = matrix[rightCityIndex]; if (distance != 0) { System.out.print(distance); } else { System.out.println("0"); } in.close(); }}

上面这个没有通过在线验证,不过我本机试着还行.可能是有些问题吧,写得太杂了

之后看了其他人用HashMap实现的,我尝试了下,不过最终还是比他们大神写的要长很多:不过也很满足已经通过了测验:

package mooc_java进阶_d3周题;/** * 使用了HashMap */import java.util.ArrayList;import java.util.HashMap;import java.util.Map;import java.util.Scanner;public class Main4 {    public static void main(String[] args) {        Main4 m = new Main4();        // STEP 1 : 用基础方法去模拟方法实现        Scanner in = new Scanner(System.in);        ArrayList
citys = new ArrayList
(); boolean go = true; String oneOfcity; String stopSymbol = "###"; while (go) { oneOfcity = in.next(); if (oneOfcity.equals(stopSymbol)) {
// 如果这轮输入的单个城市是###休止符 break;// } citys.add(oneOfcity); } int n = citys.size();// 获取城市数量 int numOfCitys = n * n;// 获取城市矩阵距离数量 // STEP 2 : 获取矩阵数字 ArrayList
matrixNumber = new ArrayList
(); int count = 0; Integer x; Integer xx = null; while (go) { x = in.nextInt(); matrixNumber.add(x);// 接收矩阵数字 count++; if (count == numOfCitys) { break; } } // STEP 3 : 获取最后的两个城市 调用getCitysGroup方法 String lastTwoCitys = m.getCitysGroup(in.next(), in.next()); // STEP 4 : 返回的Map是拼接的城市名字符串以及Integer矩阵数字 Map all = m.getHashCity(citys, matrixNumber); Integer result = (Integer) all.get(lastTwoCitys); System.out.println(result); } //怎样创建一个方法接受两个方法传入的动态数据 //接收citys 和 矩阵 private Map getHashCity(ArrayList
list,ArrayList
matrix) { String hashcity = null; Integer matNumbers = null; Map
hashcitys = new HashMap<>(); int numCount = 0; for (int i = 0; i < list.size(); i++) { for (int j = 0; j < list.size(); j++) { hashcity = getCitysGroup(list.get(i), list.get(j)); matNumbers = matrix.get(numCount); hashcitys.put(hashcity, matNumbers); numCount++; } } return hashcitys; } private String getCitysGroup(String one, String two) { // hashString现在是城市组合的相加的字符串 String hashString = one + two; return hashString; } }

 

转载于:https://www.cnblogs.com/ukzq/p/9098645.html

你可能感兴趣的文章
从技术到管理,艰难的转型
查看>>
SystemCenter2012SP1实践(17)更多的定制模板
查看>>
Microsoft UC 2013 Preview-3-Deploy Microsoft SharePoint Server 2013
查看>>
MySQL 5.7 key features
查看>>
CSA:发布SECaaS环境下的SIEM实现指南
查看>>
ResourceCursorTreeAdapter
查看>>
抢票软件依旧跑得欢 记者25分钟抢两张热门票
查看>>
软件测试工程师的职业生涯规划
查看>>
博弈论之软件测试的价值
查看>>
Windows Server 2012 存储 (一)统一体验的存储方式
查看>>
Microsoft Dynamics CRM 2013 竞争对手 介绍
查看>>
11步教你选择最稳定的MySQL版本
查看>>
Electron —— Cannot find module ‘jquery.min.js’(II)
查看>>
python下paramiko模块学习之一:ssh登录和执行命令
查看>>
***S 2012 表达式 -- 颜色管理示例
查看>>
Wvtool学习(二):实现wvtool分词功能
查看>>
MySQL如何使用DNS
查看>>
巧用倍增的思想求a^n
查看>>
oracle数据文件管理
查看>>
VOA上一句英语的翻译
查看>>