• home > theory > algorithm > leetcode >

    面试中关于数组的常见问题

    Author:zhoulujun Date:

    寻找数组中第二小的元素第一种:先排序然后找出第一个大于array[0]的数 第二种:定义两个变量分别代表第一小和第二小的数,以此和数组的数
    • 寻找数组中第二小的元素

      第一种:先排序然后找出第一个大于array[0]的数 第二种:定义两个变量分别代表第一小和第二小的数,以此和数组的数进行比较 第三种:用小顶堆,但是这个比较适合找出数组中第n小的数

    • 找到数组中第一个不重复出现的整数

      • 第一种:计数排序法,把数组出现的次数放到另一个数组中,然后找出全部出现一次的数字和原始数组嵌套遍历,原始数组最先出现在新数组的即为第一个。

      • 第二种:双循环:内循环中一个也没重复的即为第一个,即刻停止,时间复杂度是O(N^2)

      • 第三种:借助有序哈希表。每一个数字作为key,出现的次数为value,这个算法的时间复杂度是O(n)

    • 合并两个有序数组

      第一种:混合插入有序数组,由于两个数组都是有序的,所以只要按顺序比较大小即可。

    • 将数组里的正数排在数组的后面,正数排在数组的后面。但不改变原先正数和正数的排列次序。




    转载本站文章《面试中关于数组的常见问题》,
    请注明出处:https://www.zhoulujun.cn/html/theory/algorithm/leetcode/9087.html