python-3.x - 如何检查我们代码的空间复杂度是否为 O(1)
问题描述
在问题中,据说我们需要以 O(1) 空间复杂度编写代码,我看它感到困惑。有人可以解释这段代码的空间复杂度。如果它不在 O(1) 中,有什么办法可以改变它?
蟒蛇3
from collections import Counter
def duplicates(arr, n):
r=[]
dic=Counter(arr)
for i in dic:
if dic[i]>1:
r.append(i)
if r:
r.sort()
return r
else:
r.append(-1)
return r
解决方案
空间复杂度是渐近使用了多少空间(当 N 变得非常大时)
O(1) 空间复杂度通常由具有恒定大小的变量和数组组成。
您的代码是 O(N) 空间复杂度,因为数组r
随着 N 的大小而增长。
推荐阅读
- c# - EF Core 3.1 - 将标签添加到 IIncludableQueryable 而不更改类型
- c# - 仅在使用“生成单个文件”选项发布时,Newtonsoft.Json 文件未找到异常
- python - 尝试使用 while 循环重复扫描 Discord 机器人中的用户响应但无法正常工作
- javascript - PHP从按钮获取值而不提交
- reactjs - 如何在页面上显示来自 tinymce 的内容并保存编辑器样式?
- python - Pytorch:在Conv1d之后自动确定Linear层的输入形状
- angular - 从另一个组件位置为单个可观察元素设置动画
- r - 为什么updateTabsetPanel 在observeEvent 中最后运行?
- svg - 在 svg 上放置文本
- webserver - 在 Unity WebXR Exporter Build 中,Wasm 流编译失败