给定一个长度为n的数组nums,数组nums[1,n]内出现的重复的元素,请你找出所有出现两次的整数,并以数组形式返回,你必须设计并实现一个时间复杂度为 O(n) 且仅使用常量额外空间的算法解决此问题...解题思路
复杂度O(n),首先肯定只能循环一次数组,且数组中有重复的元素,并且找出重复的元素并返回。...result;
}
const res = findDuplicates([4,3,2,7,8,2,3,1]);
console.log(res); // [2,3]
首先以上代码块已经实现了寻找数组中的重复数字了...,那么复杂度就O(1);
总结以上时间复杂度,有一层循环就是O(n),如果没有循环,在数组中找值O(1),如果是双层循环那么时间复杂度就是O(n^2);
很显然我们这道题使用的是一层循环,那么复杂度就是...O(n),我们借用了一个arr = new Array(n).fill(0)其实是在n长度的数组中快速拷贝赋值一n个长度的0。