首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >为什么该算法检查一个数组是否全部具有唯一字符O(n)?

为什么该算法检查一个数组是否全部具有唯一字符O(n)?
EN

Stack Overflow用户
提问于 2020-07-05 15:42:00
回答 1查看 146关注 0票数 1

在“破解编码面试”一书中,第一个练习说“实现一个算法来确定一个字符串是否都具有唯一的字符(不使用额外的数据结构)”。解决方案是:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public static boolean isUniqueChars(String str) {
    boolean [] char_set = new boolean[256];
    for (int i = 0; i < str.length(); i++) {
        int val = str.charAt(i);
        if (char_set[val]) return false;
        char_set[val] = true;
    }
    return true;
}

然后他们说“时间复杂度是O(n),其中n是字符串的长度,空间复杂度是O(n)”。

我不明白为什么空间复杂度是O(n)。数组char_set的长度是恒定的,与给定的str的长度无关。对我来说,空间复杂度是O(1)。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-07-05 15:59:53

它的空间复杂度是O(1) (\Theta(1)),因为它保持比输入数组大小多256 (常量)位。而且,时间复杂度是O(1)的,因为在输入字符串中有256个字符要检查,并且最多将检测到字符串的第256个字符的重复。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62742879

复制
相关文章
在浏览器中本地运行Node.js
一切要从收到一封邮件开始 大早上,我收到一封邮件,StackBlitz说正在与Next.js和Google的团队合作开发一项新技术 几年前,StackBlitz意识到网络正朝着关键的拐点发展。WebAssembly和新功能API的出现使编写基于WebAssembly的操作系统似乎变得可能,该操作系统功能强大到可以完全在浏览器中运行Node.js。我们设想了一个比本地环境更快,更安全和一致的高级开发环境,以实现无缝的代码协作而无需设置本地环境 技术名为:WebContainers WebContainer
Peter谭金杰
2022/03/22
3.7K0
在浏览器中本地运行Node.js
为什么在物联网中创造良好的用户体验如此困难?
07.17-Product-Manager-1068x656_副本.jpg 在物联网领域创造良好的用户体验是困难的。现在有更多的技术层,更多的用户需要取悦,更多的团队需要协调。作为产品经理,你准备好带
用户4122690
2020/06/04
5570
为什么在物联网中创造良好的用户体验如此困难?
在本地运行 fyne 官网
要深入学习和理解一个框架,官方文档是必须要仔细阅读的。fyne 官网有非常系统和详尽的文档。官方网站:https://fyne.io/。有时候我们会有这样一个需求——离线查看文档。我经常乘坐高铁来往杭州、上海两地,地铁、高铁上通常网络比较差,甚至没有网络。为此我特地去研究了一番怎样搭建 fyne 离线文档。
用户7731323
2020/09/08
6.2K0
使用Jupyterlite在浏览器中运行Jupyter Notebook
Jupyter是一个交互式的 Python 开发环境,以 Ipython Kernel 为执行引擎,支持多种前端(Jupyter Notebook,Jupyter Lab,VS Code Jupyter 拓展),围绕.ipynb 格式的 notebook 文件,支持将代码、文档、图表、数学公式等内容整合在一起,方便用户进行交互式的开发。
杜逸先
2023/04/13
2.7K0
使用Jupyterlite在浏览器中运行Jupyter Notebook
原程序运行良好,Pyinstaller
昨天决定分享一下最近写的exhentai爬虫程序,参考了这篇文章,看了下里面几个常见打包软件的简介表格(可惜没nuitka) 因为是给小白用户使用,做成单个文件形式,只能在Pyinstaller和py2exe之间选择 去各自官网看了下,发现py2exe很久没更新了,对python3新版本的支持也不是太好,就决定用Pyinstaller来封装/打包 这里略过Pyinstaller的安装和使用,重点说明症状,分析过程,解决办法和教训
py3study
2020/01/03
1K0
Apereo CAS(一)在本地运行
Apereo CAS,是CAS协议official reference implementation,也差不多是当前开源的SSO解决方案最好、最成熟的一个了。 当前版本是6.5,https://github.com/apereo/cas-overlay-template/tree/6.5。
dhyuan
2022/11/08
2.2K0
python代码为什么在函数中运行更快
不知道有没有人注意过同样的代码是否封装在函数里,运行速度是不同的。比如以下两个代码:
生信编程日常
2020/04/01
2.5K0
在Hadoop系统中运行WordCount案例失败解决方法
报错提示: mapreduce.shuffle set in yarn.nodemanager.aux-services is invalid 请在yarn-site.xml中添加 <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> <property> <name>yarn.nodemanager.aux-services.mapredu
指剑
2022/07/15
8790
带有-i选项的sed命令在Linux上执行成功,但在MacOS上失败
就地编辑文件(如果提供了后缀,则进行备份),可见参数后缀 SUFFIX 是可选的,即带或者不带这个参数都可以执行。
程序熵
2023/09/25
3700
带有-i选项的sed命令在Linux上执行成功,但在MacOS上失败
云爆发架构中哪些应用可以良好运行?
云爆发是管理峰值业务的一个方法,但对于特定的应用说,这很难实现。因此,你知道哪些类型的应用可以最好地爆发到公有云中? 混合云的一个卖点就是IT团队可以达到的成本效益,当他们以合适的私有云规模来匹配平均工作负载,然后爆发到公有云中来满足峰值需求时。 但是,尽管有云爆发架构有一些优势,但却也存在挑战。例如,有些企业正在努力奋斗于做出最好的定位数据文件,因为在云环境之间复制数据很耗时。 IT行业解决云爆发相关的延迟问题有几种方法。例如,在公有云中把私有云作为单租户部署,或者把存储做为服务来架构数据交付,这么做
静一
2018/03/27
6990
云爆发架构中哪些应用可以良好运行?
ShenYu 网关开发:在本地启用运行
无论什么方式安装,都需要先初始化数据库,这里我选择了在本地通过 Docker 启用一个 mysql 5.7
晓晨
2022/09/01
1.1K0
ShenYu 网关开发:在本地启用运行
在本地PC运行 Stable Diffusion 2.0
Stable Diffusion 2.0在前几天已经发布了,新版本在上一个版本的基础上进行了许多改进。OpenCLIP中新的深度检测和更好的文本到图像模型是主要的改进之一。
deephub
2023/02/01
1.7K0
Hiplot 在线绘图工具的本地运行/开发库开源
Hiplot 项目发起于 2019 年,是由国内生物信息学开源社区 Openbiox 和多家单位和机构共同建设的一个免费、易用、部分开源的综合在线绘图系统(生物医学为主)。截至目前,该网站已提供超过 230+余个在线可视化分析功能,涵盖了基础科研绘图、组学可视化和部分临床模型可视化功能。总的注册用户已超过 2 万 5 千人,总访问量超过 300 万次,每日任务数已超 4000 余次。
王诗翔呀
2022/06/27
7670
Hiplot 在线绘图工具的本地运行/开发库开源
Wasm 玩出花?在浏览器中运行虚拟机!
最近在 Github 上看到了一个挺有意思的项目:运行在浏览器环境中的虚拟机:WebVM。
ConardLi
2022/02/18
2K0
Wasm 玩出花?在浏览器中运行虚拟机!
漫谈设计模式在 Spring 框架中的良好实践
好的,我们开始进入正题。设计模式实践里面提供了许多经久不衰的解决方案和最佳方案。这里,GOF 设计模式主要分为三大类:创建模式、结构模式和行为模式。创建模式对于创建对象实例非常有用。结构模式通过处理类或对象的组合来作用于企业级应用的设计结构,从而降低了应用的复杂性,提高了应用的可重用性和性能。行为模式的意图是一组对象之间的交互作用,以执行单个对象无法自己执行的任务。它描述了类或对象交互以及职责的分配。
用户1516716
2019/10/12
6250
漫谈设计模式在 Spring 框架中的良好实践
如何构建运行良好的Vue组件
作者:Kevin Ball 译者:前端小智 来源:vuejsdevelopers 很少有人最初编写Vue组件时打算将其开源。我们大多数人都是从自己编写组件开始的——我们有一个问题,然后决定通过构建一个
前端小智@大迁世界
2020/05/12
3.7K0
如何构建运行良好的Vue组件
在浏览器调起本地应用的方法
最近公司有个需求,要求在浏览器中点击某个按钮,自动调起电脑中的一个应用。 首先,将以下代码复制到一个 reg 文件,例如 test.reg。
谭光志
2020/09/28
9270
Tomcat闪退问题 Tomcat在eclipse运行失败
1.环境配置问题 2.端口被占用 3.直接修改 startup.bat 和 shutdown.bat 文件,在前面添加 jdk 和 jre 的安装路径 …还有很多 这些方法随便一搜到处都是
全栈程序员站长
2022/08/26
1.1K0
Tomcat闪退问题 Tomcat在eclipse运行失败
漫谈设计模式在 Spring 框架中的良好实践
好的,我们开始进入正题。设计模式实践里面提供了许多经久不衰的解决方案和最佳方案。这里,GOF 设计模式主要分为三大类:创建模式、结构模式和行为模式。创建模式对于创建对象实例非常有用。结构模式通过处理类或对象的组合来作用于企业级应用的设计结构,从而降低了应用的复杂性,提高了应用的可重用性和性能。行为模式的意图是一组对象之间的交互作用,以执行单个对象无法自己执行的任务。它描述了类或对象交互以及职责的分配。
用户2781897
2019/10/09
1.2K0
Hiplot 在线绘图工具的本地运行/开发库开源啦!
Hiplot 项目发起于 2019 年,是由国内生物信息学开源社区 Openbiox 和多家单位和机构共同建设的一个免费、易用、部分开源的综合在线绘图系统(生物医学为主)。截至目前,该网站已提供超过 230+余个在线可视化分析功能,涵盖了基础科研绘图、组学可视化和部分临床模型可视化功能。总的注册用户已超过 2 万 5 千人,总访问量超过 300 万次,每日任务数已超 4000 余次。
生信技能树
2022/06/27
5730
Hiplot 在线绘图工具的本地运行/开发库开源啦!

相似问题

React.js TypeError:无法读取null的属性'map‘

254

如何在react js中使用.map()处理数组

16

如何在React中使用map中的map?

12

React JS map函数

43

如何在react js中递增.map()中的变量

337
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文