原文:查找数组中重复的唯一元素+时间复杂度O(n)+空间复杂度O(1)

这是我BIGO前端面试时,面试官给我出的一道题,题目是长度为N的数组,元素大小范围在 ,N ,只有一个重复的元素,用O n 的时间复杂度和O 的空间复杂度找出来这个重复的元素, 大致思路 因为总共有N个数,每个数的范围是 到N ,只有一个重复的数,所以这些数肯定是连续的 把对应的数放到与之对应的位置上去 因为这些书不包含 ,所以可以一直操作arr ,把arr 上的数字放到对应的位置上去,再把那个位 ...

2018-10-02 14:20 1 2313 推荐指数:

查看详情

单链表的回文判断(O(n)时间复杂度O(1)的空间复杂度)

对于单链表来说,判断回文最简单的方法就是遍历链表,将链表元素复制到数组,然后对数组进行判断是否是回文数组,但是这不符合O(1)的空间复杂度。 由于空间复杂度的要求,需要就地操作链表,不能开辟多余的空间来进行处理,因此引入快慢指针来进行操作。 快慢指针: slow 和 fast,每次 ...

Thu May 26 19:02:00 CST 2016 0 2087
时间复杂度O(n),空间复杂度O(1)的排序

题目描述: 如何对n个数进行排序,要求时间复杂度O(n),空间复杂度O(1) 解析: 利用计数排序法,设置一大小为65536的int数组,范围a[0]~a[65535],并初始为0,然后遍历n个数,假设这n个数在数组array[0...n-1],则i取值从0到n-1同时执行 ...

Thu Sep 20 18:09:00 CST 2012 0 3253
如何对n个整数数进行排序,要求时间复杂度O(n),空间复杂度O(1)

题目:如何对n个不重复出现的整数序列进行排序,已知这些数的范围为(0-65535),要求时间复杂度O(n),空间复杂度O(1) 分析: 可以申请一个大小为65536的数组A,数组的x下标代表数字x,A[x]代表x 在整数序列中出现的次数。扫描一遍整数序列就可以完成对该整数序列的排序,时间复杂度 ...

Fri Mar 16 03:53:00 CST 2012 2 5944
给定一个长度为N数组,找出出现次数大于n/2,n/3的数,要求时间复杂度On),空间复杂度O(1)

  先讨论出现次数大于n/2的数字,如果这样的数字存在,那么这个数出现的次数大于其他数出现的次数的总和。 在数组A,我们定义两个数据集合a1,a2。a1为出现次数大于n/2的数的集合,a2为其余数组成的集合。对于数组 A中元素a、b,假设a不等于b,那么有两种情况,分别为:a属于a1,b属于 ...

Fri Nov 01 04:59:00 CST 2019 0 300
时间复杂度On和空间复杂度O1是什么意思?

(1)、把输入规模看成x轴,所花时间/空间看成y轴 On)就是y=x,y随x的增长而线性增长。也就是成正比,一条斜线。 O(1)就是y=1,是一个常量,不管x怎么变,y不变,一条与x轴平行的线。 (2)、举个简单的例子,要从0加到n,我们会这么写: int sum ...

Fri Nov 02 23:32:00 CST 2018 2 12478
 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM