面试算法题之合并系列

合并两个有序数组

给你两个按  非递减顺序  排列的整数数组  nums1  和  nums2,另有两个整数  m  和  n ,分别表示  nums1  和  nums2  中的元素数目。

请你  合并 nums2  到  nums1  中,使合并后的数组同样按  非递减顺序  排列。

**注意:**最终,合并后数组不应由函数返回,而是存储在数组  nums1  中。为了应对这种情况,nums1  的初始长度为  m + n,其中前  m  个元素表示应合并的元素,后  n  个元素为  0 ,应忽略。nums2  的长度为  n 。

双指针解法

因为两个数组本身是有序的,那么我们可以定义两个指针,从数组尾部开始遍历,如果nums1[m] > nums2[n]则说明nums1[m]是最大的,放置在最后,并且移动 m 指针。若小于等于则说明nums2[n]大,移动nums2[n]

你可能感兴趣的:(面试,算法,职场和发展)