time-complexity 相关问题

算法的时间复杂度量化算法运行所花费的时间量,作为问题输入大小的函数。算法的时间复杂度通常使用大O表示法表示,其抑制乘法常数和低阶项。

java ArrayList 的时间复杂度

java中ArrayList是数组还是列表? get 操作的时间复杂度是多少,是 O(n) 还是 O(1)?

回答 7 投票 0

属于同一持续时间的元素

给定一个以微秒为单位的排序时间戳向量,我需要确定属于相同持续时间(例如秒)的元素的大小。 我的想法是迭代向量直到最后一个元素......

回答 1 投票 0

时间复杂度Log(n)的排序算法

有没有平均时间复杂度log(n)的排序算法? 示例 [8,2,7,5,0,1] 对给定数组进行排序,时间复杂度为 log(n)

回答 4 投票 0

对计算大O复杂度感到困惑

最近我开始用Python学习数据结构 列表_ = [6, 4, 3, 2, 1, 7] 预期总和结果 = 9 deftwo_pair_sum_using_complement(数组,expected_sum): unique_numbers = set() #...

回答 1 投票 0

求数组的最大反转和

您将获得一个由 n 个整数组成的 0 索引数组 vect。您需要执行以下 2 个操作一次 - 选择索引 i {0, 1, 2, ..., n-1} 并乘以整个前缀段 {0..i}...

回答 1 投票 0

合并K排序列表的时间和空间复杂度

我为提到的问题编写了这个解决方案,由于我对堆不太熟悉,所以我很难找到复杂性,复杂性分析中的任何建议/更正都会有所帮助。 如果...

回答 2 投票 0

Floyd 循环检测的运行时复杂度

根据一些在线资料,我提到Floyd循环检测算法的运行时复杂度是O(n)。 说, p = 慢指针 q = 快速指针 m = 从链表起始点到 fi 的距离...

回答 3 投票 0

如果每个数字连续出现两次,为什么内置的sorted()对于包含降序数字的列表会更慢?

我对四个相似的列表进行了排序。列表 d 始终比其他列表花费更长的时间,而其他列表都花费大约相同的时间: 答:33.5 毫秒 b:33.4 毫秒 c: 36.4 毫秒 d:110.9 毫秒 这是为什么? 测试脚本(在...

回答 1 投票 0

为什么在leetcode中for循环结构条件判断中使用.size()计算数组长度会超时?

这是原来的问题 下面是我的超时代码: 类解决方案{ 民众: int removeElement(向量& nums, int val) { 整数计数=0; for(int i=0;i 下面是我的超时代码: class Solution { public: int removeElement(vector<int>& nums, int val) { int count=0; for(int i=0;i<nums.size();i++){ if(nums[i]==val){ for(int j=i;j+1<nums.size();j++){ nums[j]=nums[j+1]; count+=1; } i--; } } return nums.size()-count; } }; 我尝试用一个变量来记录nums.size()的值,并将其作为for循环结构的条件判断。就成功了。 但是我还是想知道.size()的使用时间以及它的内部代码和时间复杂度。 class Solution { public: int removeElement(vector<int>& nums, int val) { int count=0,size=nums.size(); for(int i=0;i<size;i++){ if(nums[i]==val){ for(int j=i;j+1<size;j++){ nums[j]=nums[j+1]; count+=1; } i--; size--; } } return size; } }; vector::size的时间复杂度是恒定的。但毫不奇怪,调用函数 5000 次 (size()) 或读取变量 5000 次 (size) 会有差异。 实际上你很幸运,测试仅使用大小不超过 100 的向量,因为你的算法效率不高:在最坏的情况下它的时间复杂度为 O(𝑛²)。为了说明这一点,如果输入 nums 有 100 个元素,并且它们都等于给定的 val,那么你的算法将移动 99 个元素,然后是 98 个元素,然后是 97 个,...,所以总共会有1+2+3+..+99 次运动,即 4950 次。 代码挑战中有一个提示:“元素的顺序可能会改变。”。这意味着,您可以从向量(的活动部分)中获取 last 值并用它覆盖该事件,而不是移动 val 出现后出现的所有值。然后减少 size 即可继续。这消除了您拥有的内部循环。 这是这个想法的剧透实现: class Solution { public: int removeElement(vector& nums, int val) { int size = nums.size(); for (int i = 0; i < size; i++) { if (nums[i] == val) { size--; nums[i] = nums[size]; i--; } } return size; } };

回答 1 投票 0

Google 面试问题 - 检查数组的所有子数组是否至少有一个唯一元素

我遇到了一个问题,我了解到这是一个谷歌面试问题。问题是: 如果每个子数组至少包含一个频率为 1 的元素,那么数组就是好的。 设计一个算法来 v...

回答 1 投票 0

这段带有滑动窗口的代码的时间复杂度是多少?

父 for 循环有 On ,而 while 循环有摊销 O n ?意思是我们认为它是O 1?还 最小和最大操作它们将是好的,但在最坏的情况下又会再次打开? 是O(n^3)吗? 左=0

回答 1 投票 0

在线性时间内对具有重复元素的数组(给定其频率)进行排序

假设我们有一个包含 n 个整数的数组,并且我们知道某个整数 x 在数组中出现了 alpha 次。证明或反驳是否存在一种可以在线性时间内对该数组进行排序的算法: S...

回答 1 投票 0

如何从 Big-O 表示法找到运行时间?

当仅给出函数的输入大小和 Big-O 表示法时,我很难理解如何找到函数的准确运行时间。有人可以解释一下如何执行以下操作吗

回答 2 投票 0

求绝对差之和

给定整数数组 A 和 B。对于 B 中的每一项,求与 A 元素的绝对差之和并构建结果数组。 例子: A = [1,2,3] B = [3,2,1,5] **结果 = ** [3,2,3,9]

回答 1 投票 0

Python 3.8+ 的整数平方根 `math.isqrt()` 函数的时间复杂度

我正在尝试分析Python 3.8+版本中默认整数平方根函数math.isqrt()的时间复杂度 我试图仔细研究这个函数的时间复杂度作为一个函数......

回答 1 投票 0

使用列表时Python中“in”关键字的时间复杂度? Leetcode

我到处读到“in”运算符的时间复杂度为 O(n),但我在代码中使用了它并且不知道为什么,但它的表现就好像它的时间复杂度为 O(1) 所以我...

回答 1 投票 0

if 和 while 循环的时间复杂度 m!=n

while (m != n) { 如果 (m > n) m = m - n; 别的 n = n - m; } 如果 (m>n) 则时间复杂度应为 (m/n)-1,如果 (n>m) 则时间复杂度应为 (n/m)-1。请告诉我它的O(n)是怎样的。 如果我取 m=32 并且...

回答 1 投票 0

c++ 位集逻辑运算的时间复杂度为 O(log n)?

根据这篇文章,对位集执行按位运算的性能是 O(n),我如何使其成为 O(log n)。

回答 1 投票 0

for循环内while循环的时间复杂度

我正在编写一个算法,需要找到其总和大于给定 k 参数的最小子数组的长度。 这是我到目前为止编写的函数: public static intsmallSub(在...

回答 1 投票 0

lru_cache 与动态编程、stackoverflow 有一个但另一个没有?

我正在树上做这个基本的 dp(动态规划)问题(https://cses.fi/problemset/task/1674/)。给定公司的结构(层次结构是一棵树),任务是计算每个员工...

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.