.数组去重的方式面试题
时间: 2023-10-29 16:45:01 浏览: 35
您好,关于数组去重的方式面试题,一般有以下几种方法:
1. 使用for循环遍历数组,使用 indexOf 方法判断当前元素是否在数组中出现过,如果没有则将其 push 到一个新数组中。
2. 使用 ES6 的 Set 数据结构,将数组转为 Set,再使用 Array.from 方法将 Set 转为数组,即可去重。
3. 使用 ES6 的 Map 数据结构,将数组中的元素作为 Map 的键,去重后的数组则是 Map 的键所组成的数组。
希望以上方法对您有帮助。如果您有其他问题,欢迎继续提问。
相关问题
js 数组去重面试题
以下是两种JS数组去重的方法:
1.利用indexOf来去重
```javascript
const arr = [1,2,3,4,5,6,6,5,4,3,2,1,0];
const newArr = arr.filter((it, index, list) => list.indexOf(it) === index);
console.log(newArr); // 输出:1 2 3 4 5 6 0
```
2.利用Set去重
```javascript
const arr = [1,2,3,4,5,6,6,5,4,3,2,1,0];
const newArr = [...new Set(arr)];
console.log(newArr); // 输出:1 2 3 4 5 6 0
```
数据结构与算法面试题
数据结构与算法是面试中常见的重要考点,以下是一些常见的数据结构与算法面试题:
1. 数组操作:如查找数组中的最大/最小值、数组去重、数组反转等。
2. 链表操作:如反转链表、合并两个有序链表、判断链表是否有环等。
3. 栈和队列:如用栈实现队列、用队列实现栈、有效的括号等。
4. 哈希表:如两数之和、无重复字符的最长子串等。
5. 二叉树:如二叉树的遍历(前序、中序、后序)、判断二叉树是否对称等。
6. 堆和优先队列:如查找数组中的前K个最大/最小元素、合并K个有序数组等。
7. 排序算法:如快速排序、归并排序、堆排序等。
8. 查找算法:如二分查找、哈希查找等。
9. 动态规划:如斐波那契数列、背包问题、最长递增子序列等。
10. 图算法:如深度优先搜索(DFS)、广度优先搜索(BFS)、拓扑排序等。
以上只是一些常见的面试题示例,实际面试中可能会涉及更多的题目类型和难度。在准备面试时,建议多练习各种类型的题目,并深入理解其原理和解题思路。同时,要注重分析问题的时间复杂度和空间复杂度,以及优化算法的能力。