Java实现 LeetCode 609 在系统中查找重复文件(阅读理解+暴力大法).docx

上传人:Lun****ng 文档编号:143871888 上传时间:2020-09-02 格式:DOCX 页数:2 大小:11.31KB
返回 下载 相关 举报
Java实现 LeetCode 609 在系统中查找重复文件(阅读理解+暴力大法).docx_第1页
第1页 / 共2页
Java实现 LeetCode 609 在系统中查找重复文件(阅读理解+暴力大法).docx_第2页
第2页 / 共2页
亲,该文档总共2页,全部预览完了,如果喜欢就下载吧!
资源描述

《Java实现 LeetCode 609 在系统中查找重复文件(阅读理解+暴力大法).docx》由会员分享,可在线阅读,更多相关《Java实现 LeetCode 609 在系统中查找重复文件(阅读理解+暴力大法).docx(2页珍藏版)》请在金锄头文库上搜索。

1、Java实现 LeetCode 609 在系统中查找重复文件(阅读理解+暴力大法)609. 在系统中查找重复文件给定一个目录信息列表,包括目录路径,以及该目录中的所有包含内容的文件,您需要找到文件系统中的所有重复文件组的路径。一组重复的文件至少包括二个具有完全相同内容的文件。输入列表中的单个目录信息字符串的格式如下:“root/d1/d2/dm f1.txt(f1_content) f2.txt(f2_content) fn.txt(fn_content)”这意味着有 n 个文件(f1.txt, f2.txt fn.txt 的内容分别是 f1_content, f2_content fn_co

2、ntent)在目录 root/d1/d2/dm 下。注意:n=1 且 m=0。如果 m=0,则表示该目录是根目录。该输出是重复文件路径组的列表。对于每个组,它包含具有相同内容的文件的所有文件路径。文件路径是具有下列格式的字符串:“directory_path/file_name.txt”示例 1:输入:“root/a 1.txt(abcd) 2.txt(efgh)”, “root/c 3.txt(abcd)”, “root/c/d 4.txt(efgh)”, “root 4.txt(efgh)”输出:“root/a/2.txt”,“root/c/d/4.txt”,“root/4.txt”,“r

3、oot/a/1.txt”,“root/c/3.txt”注:最终输出不需要顺序。您可以假设目录名、文件名和文件内容只有字母和数字,并且文件内容的长度在 1,50 的范围内。给定的文件数量在 1,20000 个范围内。您可以假设在同一目录中没有任何文件或目录共享相同的名称。您可以假设每个给定的目录信息代表一个唯一的目录。目录路径和文件信息用一个空格分隔。超越竞赛的后续行动:假设您有一个真正的文件系统,您将如何搜索文件?广度搜索还是宽度搜索?如果文件内容非常大(GB级别),您将如何修改您的解决方案?如果每次只能读取 1 kb 的文件,您将如何修改解决方案?修改后的解决方案的时间复杂度是多少?其中最耗

4、时的部分和消耗内存的部分是什么?如何优化?如何确保您发现的重复文件不是误报?class Solution public ListList findDuplicate(String paths) ListList list = new ArrayListList(); Map map = new HashMap(); int index = 0; for (String str : paths) String strs = str.split( ); for (int i = 1; i strs.length; i+) String key = strsi.substring(strsi.indexOf() + 1, strsi.indexOf(); if (!map.containsKey(key) map.put(key, index+); list.add(new ArrayList(); list.get(map.get(key).add(strs0 + / + strsi.substring(0, strsi.indexOf(); for (int i = list.size() - 1; i = 0; i-) if (list.get(i).size() 2) list.remove(i); return list;

展开阅读全文
相关资源
相关搜索

当前位置:首页 > IT计算机/网络 > 其它相关文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号