本篇內(nèi)容主要講解“如何用python合并兩個有序數(shù)組”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實(shí)用性強(qiáng)。下面就讓小編來帶大家學(xué)習(xí)“如何用python合并兩個有序數(shù)組”吧!
公司主營業(yè)務(wù):網(wǎng)站建設(shè)、成都網(wǎng)站設(shè)計、移動網(wǎng)站開發(fā)等業(yè)務(wù)。幫助企業(yè)客戶真正實(shí)現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競爭能力。成都創(chuàng)新互聯(lián)是一支青春激揚(yáng)、勤奮敬業(yè)、活力青春激揚(yáng)、勤奮敬業(yè)、活力澎湃、和諧高效的團(tuán)隊。公司秉承以“開放、自由、嚴(yán)謹(jǐn)、自律”為核心的企業(yè)文化,感謝他們對我們的高要求,感謝他們從不同領(lǐng)域給我們帶來的挑戰(zhàn),讓我們激情的團(tuán)隊有機(jī)會用頭腦與智慧不斷的給客戶帶來驚喜。成都創(chuàng)新互聯(lián)推出鶴山免費(fèi)做網(wǎng)站回饋大家。
找出數(shù)組中兩個數(shù)之和等于target
的兩數(shù)下標(biāo)。
但時間較長,時間復(fù)雜度$O(N^2)$
class Solution: def twoSum(self, nums: List[int], target: int) -> List[int]: n = len(nums) for i in range(n): for j in range(i + 1, n): if nums[i] + nums[j] == target: return [i, j] return []
官方題解的一個比較巧妙的方式:使用哈希表(字典) 用字典記錄出現(xiàn)過的數(shù)字的位置。 時間復(fù)雜度$O(N)$,空間復(fù)雜度$O(N)$
class Solution: def twoSum(self, nums: List[int], target: int) -> List[int]: hashtable = dict() for i, num in enumerate(nums): if target - num in hashtable: return [hashtable[target - num], i] hashtable[nums[i]] = i return []
兩個有序數(shù)組,將第二個數(shù)組nums2
合并到第一個數(shù)組nums1
。
1.可以用雙指針遍歷兩個數(shù)組:
class Solution: def merge(self, nums1: List[int], m: int, nums2: List[int], n: int) -> None: """ Do not return anything, modify nums1 in-place instead. """ # 兩個中存在空數(shù)組的時,直接返回 if m == 0: nums1[:] = nums2[:] return if n == 0: return index1,index2 = 0,0 t = [] while index1官方版本,更簡潔、清楚。
class Solution: def merge(self, nums1: List[int], m: int, nums2: List[int], n: int) -> None: """ Do not return anything, modify nums1 in-place instead. """ sorted = [] p1, p2 = 0, 0 while p1 < m or p2 < n: if p1 == m: sorted.append(nums2[p2]) p2 += 1 elif p2 == n: sorted.append(nums1[p1]) p1 += 1 elif nums1[p1] < nums2[p2]: sorted.append(nums1[p1]) p1 += 1 else: sorted.append(nums2[p2]) p2 += 1 nums1[:] = sorted(暴力) 追加后排序
更簡單粗暴的方式是直接將
nums2
追加到nums1
后,進(jìn)行排序。 及其簡單而且效果很好。class Solution: def merge(self, nums1: List[int], m: int, nums2: List[int], n: int) -> None: """ Do not return anything, modify nums1 in-place instead. """ nums1[m:] = nums2 nums1.sort()到此,相信大家對“如何用python合并兩個有序數(shù)組”有了更深的了解,不妨來實(shí)際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!
當(dāng)前標(biāo)題:如何用python合并兩個有序數(shù)組
網(wǎng)頁網(wǎng)址:http://weahome.cn/article/gidsgd.html