iOS 面试 - 算法题

快排的原理

链表和数组的区别是什么?插入和查询的实践复杂度分别是多少?

哈希表是如何实现的?如何解决地址冲突?

排序:冒泡排序、选择排序、插入排序、快速排序(二路、三路)能写出哪些?

链表:如何检测链表中是否有环?如何删除链表中等于某个值得所有节点?

数组:如何在有序数组中找出和等于给定值得两个元素?如何合并两个有序数组之后保持有序?

二叉树:如何反转二叉树?如何验证两个二叉树是否完全相等?

在一个10G的数据里面找出最大的100个数

在10亿个数中如何快速找到最大的前100个数

二叉树先序遍历(递归和非递归)

二叉树的中序遍历,非递归

把一个链表比某个值大的放在左边,比它小的放在右边

两个链表找第一个相同结点

找链表的倒数第k个结点

字符串翻转

堆排序

有时间复杂度为 O(n) 的排序吗

冒泡、插入、快速排序的平均时间复杂度和最坏时间复杂度

写个算法,输出2~100的素数

求数组的最长子数组

在数组中找最小的k个数

智力题,一个骑手送餐,ABCD商店,送给abcd四个人

奇数排在前面,偶数排在后面

判断一个字符串是否所有的大写字母都在小写字母前面

你可能感兴趣的:(iOS 面试 - 算法题)