【每日一题Day135】LC1487保证文件名唯一 | 哈希表
保证文件名唯一【LC1487】
给你一个长度为
n的字符串数组names。你将会在文件系统中创建n个文件夹:在第i分钟,新建名为names[i]的文件夹。由于两个文件 不能 共享相同的文件名,因此如果新建文件夹使用的文件名已经被占用,系统会以
(k)的形式为新文件夹的文件名添加后缀,其中k是能保证文件名唯一的 最小正整数 。返回长度为
n的字符串数组,其中ans[i]是创建第i个文件夹时系统分配给该文件夹的实际名称。
-
思路:
使用哈希表统计每个文件名出现的次数,如果哈希表中未出现过该文件名,那么不需要添加后缀,将其直接放入哈希表中;如果哈希表中出现过该文件名,那么需要找到不存在与哈希表中的最小后缀
k,那么新文件夹的文件名为file=names[i] + "(" + k + ")",然后在哈希表中更新names[i] 出现的次数和file。 -
实现
class Solution {public String[] getFolderNames(String[] names) {int n = names.length;Map<String, Integer> map = new HashMap<>();String[] res = new String[n];for (int i = 0; i < n; i++){if (!map.containsKey(names[i])){map.put(names[i], 1);res[i] = names[i];}else{ int count = map.get(names[i]);while (map.containsKey(names[i] + "(" + count + ")")){count++;}String file = names[i] + "(" + count + ")"; res[i] = file;map.put(file, 1);map.put(names[i], count);}}return res;} }- 复杂度
- 时间复杂度:O(∑i=0n−1mi)O(\sum^{n-1} _{i=0} m_i)O(∑i=0n−1mi),mim_imi表示字符串names[i]names[i]names[i]的长度
- 空间复杂度:O(∑i=0n−1mi)O(\sum^{n-1} _{i=0} m_i)O(∑i=0n−1mi)
- 复杂度
相关文章:
【每日一题Day135】LC1487保证文件名唯一 | 哈希表
保证文件名唯一【LC1487】 给你一个长度为 n 的字符串数组 names 。你将会在文件系统中创建 n 个文件夹:在第 i 分钟,新建名为 names[i] 的文件夹。 由于两个文件 不能 共享相同的文件名,因此如果新建文件夹使用的文件名已经被占用࿰…...
计算机系统的基本组成 第一节
一、计算机系统 计算机系统是指:电子数字通用、计算机系统 由硬件和软件两个子系统组成 硬件是保存和运行软件的物质基础 软件是指挥硬件完成预期功能的智力部分 重点: 计算机系统部件 五个 1、数据运算部件:完成对数据的运算处理功能…...
Scrapy爬虫框架入门
Scrapy是Python开发的一个非常流行的网络爬虫框架,可以用来抓取Web站点并从页面中提取结构化的数据,被广泛的用于数据挖掘、数据监测和自动化测试等领域。下图展示了Scrapy的基本架构,其中包含了主要组件和系统的数据处理流程(图中…...
最新使用nvm控制node版本步骤
一、完全卸载已经安装的node、和环境变量 ①、打开控制面板的应用与功能,搜索node,点击卸载 ②、打开环境变量,将node相关的所有配置清除 ③、打开命令行工具,输入node-v,没有版本号则卸载成功 二、下载nvm安装包 ①…...
Linux内核4.14版本——drm框架分析(1)——drm简介
目录 1. DRM简介(Direct Rendering Manager) 1.1 DRM发展历史 1.2 DRM架构对比FB架构优势 1.3 DRM图形显示框架 1.4 DRM图形显示框架涉及元素 1.4.1 DRM Framebuffer 1.4.2 CRTC 1.4.3 Encoder 1.4.4 Connector 1.4.5 Bridge 1.4.6 Panel 1.4.…...
Google的一道经典面试题 - 767. 重构字符串
文章目录Google的一道经典面试题 - 767. 重构字符串767. 重构字符串1054. 距离相等的条形码结论Google的一道经典面试题 - 767. 重构字符串 767. 重构字符串 题目链接:767. 重构字符串 题目大意:给定一个字符串 s ,检查是否能重新排布其中的…...
E8-公共选择框相关的表
起因 昨天同事和我说,要在一个表单里加一组可选项。于是我去了公共选择框维护。这时候才发了这么个问题,前几天我在本机的测试环境里做的流程,导入到我们的生产环境里,表单里所用到的共公选择框的选项都在,在表单里是…...
再学C语言41:变长数组(VLA)
处理二维数组的函数:数组的行可以在函数调用时传递,但是数组的列只能被预置在函数内部 示例代码: #define COLS 4 int sum(int arr[][COLS], int rows) {int r;int c;int temp 0;for(r 0; r < rows; r){for(c 0; c < COLS; c){tem…...
物联网WEB大屏数据可视化
最近了解WEB大屏显示。一般像嵌入式这类的,MQTT协议会走的多一些,走订阅和发布的策略,网上走了一圈之后,目前有几个实现方案。这里对比一下几个物联网协议,相对而言MQTT更合适物联网,其它几个协议不是干这个…...
新:DlhSoft Gantt Chart for WPF Crack
用于 Silverlight/WPF 4.3.48 的 DlhSoft 甘特图灯光库 改进甘特图、网络图和 PERT 图表组件的 PERT 关键路径算法。2023 年 3 月 2 日 - 17:09新版本特征 改进了甘特图、网络图和 PERT 图表组件的 PERT 关键路径算法。Silverlight/WPF 标准版的 DlhSoft 甘特图灯光库 DlhSoft …...
C++基础(一)—— C++概述、C++对C的扩展(作用域、struct类型、引用、内联函数、函数默认参数、函数占位参数、函数重载)
1. C概述1.1 c简介“c”中的来自于c语言中的递增运算符,该运算符将变量加1。c起初也叫”c withclsss”.通过名称表明,c是对C的扩展,因此c是c语言的超集,这意味着任何有效的c程序都是有效的c程序。c程序可以使用已有的c程序库。为什…...
Rust学习总结之if,while,loop,for使用
目录 一:if的使用 二:while的使用 三:loop的使用 四:for的使用 本文总结的四种语句(if,while,loop,for)除了loop,其他的三个在C语言或者Python中都是常见…...
Java知识复习(十一)RabbitMQ
1、RabbitMQ简介 RabbitMQ 是采用 Erlang 语言实现 AMQP(Advanced Message Queuing Protocol,高级消息队列协议)的消息中间件 2、RabbitMQ核心概念 RabbitMQ 整体上是一个生产者与消费者模型,主要负责接收、存储和转发消息 3、Producer和…...
thinkphp图片压缩类
<?php namespace app\lib; /** * 图片压缩类:通过缩放来压缩。 * 如果要保持源图比例,把参数$percent保持为1即可。 * 即使原比例压缩,也可大幅度缩小。数码相机4M图片。也可以缩为700KB左右。如果缩小比例,则体积会更小。…...
如何将图数据库应用于电影智能推荐
导读 电影,是一种结合视觉与听觉的现代艺术。如今,电影已不单是人们娱乐消遣的生活方式,也逐渐成为国家文化软实力的重要标志之一。据有关数据统计,2021年中国影视行业市场规模达2349亿元,同比增长23.2%,预…...
CSS实现动画效果的菜单收起展开图标,html实现动画效果的箭头
效果 实现代码 此处JS代码引入了jquery <!DOCTYPE html> <html><head><meta charset"UTF-8"><title></title><style>.menu-icon{position: absolute;left: 20%;top: 30%;transition: all .3s;}.menu-icon:before, .menu…...
大数据平台小结
搭建大数据平台启动流程1、启动Nginx服务(在bdp-web-mysql服务中)cd /usr/local/nginx/# 启动Nginx ./sbin/nginx# 查看端口是否存在 netstat -tunlp|grep 200012、启动zookeeper(在bdp-executor-realtime123)cd /app/bdp/apache-…...
力扣-139单词拆分
力扣-139单词拆分 1、题目 给你一个字符串 s 和一个字符串列表 wordDict 作为字典。请你判断是否可以利用字典中出现的单词拼接出 s 。 注意:不要求字典中出现的单词全部都使用,并且字典中的单词可以重复使用。 示例 1: 输入: s "…...
图机器学习-图神经网络
图神经网络 前面讲了图机器学习的一些传统方法,现在正式进入到课程的核心部分:图神经网络。 Design of GNN 那么图神经网络和我们之前接触的一些深度神经网络有什么不同呢? 对于别的类型的神经网络,往往我们都是处理一些类似网…...
配置Airbyte资源限制
资源限制有三种不同的级别配置:Instance-wide - 应用到Airbyte实例创建的Sync Job的所有容器上。Connector-specific - 应用到Airbyte实例创建的Sync Job的所有指定类型连接器的容器上Connection-specific - 应用到Airbyte实例创建的Sync Job的所有指定管道的容器上…...
深度掌控AMD Ryzen:解锁处理器底层调试与性能调优终极指南
深度掌控AMD Ryzen:解锁处理器底层调试与性能调优终极指南 【免费下载链接】SMUDebugTool A dedicated tool to help write/read various parameters of Ryzen-based systems, such as manual overclock, SMU, PCI, CPUID, MSR and Power Table. 项目地址: https:…...
5步快速上手!罗技鼠标宏终极压枪教程:告别手残轻松吃鸡
5步快速上手!罗技鼠标宏终极压枪教程:告别手残轻松吃鸡 【免费下载链接】logitech-pubg PUBG no recoil script for Logitech gaming mouse / 绝地求生 罗技 鼠标宏 项目地址: https://gitcode.com/gh_mirrors/lo/logitech-pubg 还在为《绝地求生…...
大语言模型推理引擎优化:架构挑战与关键技术解析
1. 大语言模型推理引擎的架构挑战与优化方向1.1 Transformer架构的固有瓶颈Transformer架构的自注意力机制存在两大核心瓶颈:计算复杂度和内存占用。对于序列长度N,自注意力层的计算复杂度为O(N),这使得长文本处理成为性能黑洞。以2048 token…...
CentOS 7.9上5分钟搞定openGauss极简版安装(附防火墙和权限避坑指南)
CentOS 7.9极速部署openGauss:5分钟实战与深度避坑手册 在数据库技术快速迭代的今天,openGauss作为企业级开源数据库的佼佼者,正受到越来越多开发者和运维团队的青睐。本文将带你在CentOS 7.9系统上,用最短时间完成openGauss极简版…...
给工程师的傅里叶变换:从信号处理到图像压缩,用Python代码理解核心推导
给工程师的傅里叶变换:从信号处理到图像压缩,用Python代码理解核心推导 当你在Spotify上听歌时,算法如何从嘈杂环境中分离人声?手机拍照时,JPEG压缩为何能大幅减小文件体积却保持清晰?这些看似不相关的技术…...
正交张量、正定张量与材料稳定性:在有限元分析ABAQUS中的实际应用与参数设置
正交张量、正定张量与材料稳定性:在有限元分析ABAQUS中的实际应用与参数设置 当工程师在ABAQUS中遇到材料刚度矩阵非正定警告时,往往意味着仿真结果可能失去物理意义。这种警告背后隐藏着深刻的张量数学原理——正定张量的性质直接决定了材料本构模型的稳…...
FPGA实战:I2C总线Verilog状态机设计与调试全解析
1. I2C总线协议基础与实战意义 I2C(Inter-Integrated Circuit)作为Philips(现NXP)开发的经典两线制串行总线,在低速设备通信中占据重要地位。我刚开始接触FPGA时,最头疼的就是I2C的时序控制——两根线&…...
物联网平台融资潮解析:从资本流向看行业技术演进与未来格局
1. 项目概述:为什么我们要关注物联网平台的融资潮?最近几年,如果你在科技圈里待着,很难不注意到一个现象:那些做物联网开发平台的公司,动不动就宣布完成了上亿甚至数亿美元的融资。这已经不是个别现象&…...
YOLOv8铁轨轨道缺陷识别检测系统(项目源码+YOLO数据集+模型权重+UI界面+python+深度学习+环境配置)
摘要 针对铁轨表面缺陷自动化检测需求,本研究构建了基于YOLOv8的实时检测系统,涵盖Spalling(剥落)、Wheel Burn(车轮烧伤)、Squat(轨头压溃)和Corrugation(波浪磨耗&…...
OpCore-Simplify终极指南:10分钟自动化完成黑苹果配置的完整教程
OpCore-Simplify终极指南:10分钟自动化完成黑苹果配置的完整教程 【免费下载链接】OpCore-Simplify A tool designed to simplify the creation of OpenCore EFI 项目地址: https://gitcode.com/GitHub_Trending/op/OpCore-Simplify 还在为复杂的黑苹果配置而…...
