当前位置: 首页 > news >正文

宁波百度网站建设百度浏览器下载安装

宁波百度网站建设,百度浏览器下载安装,长沙网站制作品牌,网页平面设计培训学校题目 一个文件目录的数据格式为:目录id,本目录中文件大小#xff0c;(子目录id列表)。其中目录id全局唯一#xff0c; 取值范围[1 ,200]#xff0c;本目录中文件大小范围[1,1000]#xff0c;子目录id列表个数[0,10] 例如: 1 20 (2,3)表示目录1中文件总大小是20,有两个子目录…题目 一个文件目录的数据格式为:目录id,本目录中文件大小(子目录id列表)。其中目录id全局唯一 取值范围[1 ,200]本目录中文件大小范围[1,1000]子目录id列表个数[0,10] 例如: 1 20 (2,3)表示目录1中文件总大小是20,有两个子目录id分别是2和3 现在输入一个文件系统中所有目录信息以及待查询的目录id,返回这个目录和及该目录所有子目录的大小之和 输入描述 第一行为两个数字MN,分别表示目录的个数和待查询的目录id. 1≤M≤100 1≤N≤200 接下来M行每行为1个目录的数据 目录id 本目录中文件大小(子目录id列表) 子目录列表中的子目录id以逗号分隔 输出描述 待查询目录及其子目录的大小之和 示例1: 输入 3 1 3 15 (0) 1 20 (2) 2 10 (3) 输出 45 说明 目录1大小为20包含一个子目录2(大小为10)子目录2包含一个子目录3(大小为15)总的大小为20 101545 示例2: 输入 4 2 4 20 () 5 30 () 2 10 (4,5) 1 40() 输出 60 说明 目录2包含2个子目录4和5总的大小为102030 60 思路 使用两个map分别【存储id-本目录大小】【id-子目录列表】假设分别定义为MapInteger, Integer sizeMap MapInteger, int[] subDirMap 方案一dfs遍历即可设计函数dfs(n),n代表待查询目录id 记录当前目录大小:ressizeMap.get(n) 定义dfs的终止条件如果子目录为空终止递归直接返回res 否则遍历子目录list使用res累加上dfs(s)s代表每次遍历的子目录id 最后返回res即可 方案二利用对列实现 初始对列deque加入待查询目录iddeque.add(n); 遍历deque如果deque不为空那么弹出对列得到目录ididdeque.pollFirst(); 根据id在sizeMap 中找到当前目录的大小ressizeMap.get(id) 根据id在subDirMap中找到当前目录的子目录列表将子目录列表加入到deque中 遍历完成后将res返回即可 题解 package hwod;import java.util.*; import java.util.stream.Collectors;public class DirectorySize {public static void main(String[] args) {Scanner sc new Scanner(System.in);int m sc.nextInt();int n sc.nextInt();sc.nextLine();String[] directoryInfos new String[m];for (int i 0; i m; i) {directoryInfos[i] sc.nextLine();}System.out.println(getDirectorySize(directoryInfos, n));}private static MapInteger, Integer sizeMap new HashMap();private static MapInteger, int[] subDirMap new HashMap();private static int getDirectorySize(String[] infos, int n) {for (int i 0; i infos.length; i) {String[] lines infos[i].split( );int id Integer.parseInt(lines[0]);int size Integer.parseInt(lines[1]);sizeMap.put(id, size);String subDirsStr lines[2].substring(1, lines[2].length() - 1);if (.equals(subDirsStr)) {subDirMap.put(id, new int[0]);} else {subDirMap.put(id, Arrays.stream(subDirsStr.split(,)).mapToInt(Integer::parseInt).toArray());}}if (!sizeMap.containsKey(n)) return -1;// return dfs(n);return getForQueue(n);}//方案一private static int dfs(int n) {int[] subdirs subDirMap.get(n);int res sizeMap.get(n);if (subdirs.length 0) return res;for (int i 0; i subdirs.length; i) {if(!sizeMap.containsKey(subdirs[i])) continue; //兼容错误数据如(0,2),(-1,2,999)res dfs(subdirs[i]);}return res;}//方案二对列实现private static int getForQueue(int n) {LinkedListInteger deque new LinkedList();deque.add(n);int res 0;while (!deque.isEmpty()) {int id deque.pollFirst();if(id0) continue; //如果修改为break那么子目录不允许这种情况(0,2)(-1,2,999)存在res sizeMap.get(id);deque.addAll(Arrays.stream(subDirMap.get(id)).boxed().collect(Collectors.toList()));}return res;}}推荐 如果你对本系列的其他题目感兴趣可以参考华为OD机试真题及题解JAVA查看当前专栏更新的所有题目。
http://www.dnsts.com.cn/news/44813.html

相关文章:

  • 高密哪里做网站好win2008系统做网站
  • 南京做网站找哪家好大足网站建设公司
  • 美橙互联网站建设案例济宁网站建设优化
  • phpcms手机网站怎么做wordpress题库插件
  • 网站目录权限设置 user新浪sae部署wordpress配置
  • 济南网站建设 选搜点o甘肃临夏州建设局网站
  • 做推广什么网站好支持wordpress个人博客源码
  • 网站备案方案邮件从wordpress
  • 网站制作代码连锁餐厅vi设计公司
  • 客源汇软件怎么样站长工具seo综合查询工具
  • 个体可以做几个网站WordPress固定连接编辑
  • 房产类网站建设浙江省建设厅继续教育网站首页
  • com网站建设江山有做网站开发吗
  • 免费创办网站ui培训班 千锋教育
  • 建设行业年度峰会网站wordpress 输出短代码
  • 海淀区网站建设公司京东网站谁建设
  • 阿里巴巴免费做网站济南百度提升优化
  • 合肥做网站seo系统oem
  • 天津网站优化如何设置网站名字
  • 网站建设一站式我的世界的家怎么做视频网站
  • 成都市高新区规划建设局网站学网站建设哪里好
  • 网站相似度检测 站长百度竞价
  • 哪个网站可以做字体网页设计源代码
  • 邢台网站建设哪家好猎聘网招聘
  • 漯河住房和城乡建设局网站php做的汽车销售网站
  • 网站建设最新教程视频电子商务网站建设前景
  • 站点创建新闻发稿计划怎么写
  • 企业网站项目流程番禺响应式网站开发
  • 网站 微信 app商标注册官网入口官网
  • 白银做网站的董事外贸网站设计注意事项