返回
轻松掌握88. 合并两个有序数组的解法!
后端
2024-01-30 17:58:55
轻松上手,从容应对
在 leetcode 上,88. 合并两个有序数组 问题十分经典,是许多程序员在面试中都会遇到的难题。不过,只要掌握了正确的方法,您就可以轻松地解决这个问题。本文将为您提供三种不同的解法,涵盖了从基础到进阶的多种思路,让您能够根据自己的水平选择最适合的方法。
方法一:使用 while 循环
def merge(nums1, m, nums2, n):
"""
:type nums1: List[int]
:type m: int
:type nums2: List[int]
:type n: int
:rtype: None Do not return anything, modify nums1 in-place instead.
"""
i, j, k = 0, 0, 0
while i < m and j < n:
if nums1[i] < nums2[j]:
nums1[k] = nums1[i]
i += 1
else:
nums1[k] = nums2[j]
j += 1
k += 1
while i < m:
nums1[k] = nums1[i]
i += 1
k += 1
while j < n:
nums1[k] = nums2[j]
j += 1
k += 1
方法二:使用 for 循环
def merge(nums1, m, nums2, n):
"""
:type nums1: List[int]
:type m: int
:type nums2: List[int]
:type n: int
:rtype: None Do not return anything, modify nums1 in-place instead.
"""
for i, num in enumerate(nums2):
j = m + i
while j > 0 and nums1[j - 1] > num:
nums1[j] = nums1[j - 1]
j -= 1
nums1[j] = num
方法三:使用 Python 内置的 sorted() 函数
def merge(nums1, m, nums2, n):
"""
:type nums1: List[int]
:type m: int
:type nums2: List[int]
:type n: int
:rtype: None Do not return anything, modify nums1 in-place instead.
"""
nums1[:] = sorted(nums1[:m] + nums2)
结语
通过本文,您已经掌握了三种不同的方法来解决 leetcode 上的 88. 合并两个有序数组 问题。无论是使用 while 循环、for 循环还是 Python 内置的 sorted() 函数,您都可以根据自己的水平和喜好选择最适合自己的方法。希望本文对您的学习和工作有所帮助。