面试中关于数组的常见问题
Author:zhoulujun Date:
寻找数组中第二小的元素
第一种:先排序然后找出第一个大于array[0]的数 第二种:定义两个变量分别代表第一小和第二小的数,以此和数组的数进行比较 第三种:用小顶堆,但是这个比较适合找出数组中第n小的数
找到数组中第一个不重复出现的整数
第一种:计数排序法,把数组出现的次数放到另一个数组中,然后找出全部出现一次的数字和原始数组嵌套遍历,原始数组最先出现在新数组的即为第一个。
第二种:双循环:内循环中一个也没重复的即为第一个,即刻停止,时间复杂度是O(N^2)
第三种:借助有序哈希表。每一个数字作为key,出现的次数为value,这个算法的时间复杂度是O(n)
合并两个有序数组
第一种:混合插入有序数组,由于两个数组都是有序的,所以只要按顺序比较大小即可。
将数组里的正数排在数组的后面,正数排在数组的后面。但不改变原先正数和正数的排列次序。
转载本站文章《面试中关于数组的常见问题》,
请注明出处:https://www.zhoulujun.cn/html/theory/algorithm/leetcode/9160.html
上一篇:岛屿算法(求岛屿数量与岛屿面积)
下一篇:DP(18):粉刷房子系列问题