雙指標問題 合併有序陣列

2021-09-24 01:17:05 字數 957 閱讀 1683

簡單演算法

指標概述

『指標』就是程式語言中的乙個物件,它儲存這乙個記憶體空間的位址,計算機可以通過這個位址找到變數的值,也就是說,這個特定的位址指向這個值。指標的最大優點是在於它可以有效的利用零碎的記憶體空間

在python中列表 可以用來代替陣列進行解釋

指標並不是真正的指標,而是一種模擬指標,類似於元素的位置下標

# 合併兩個有序的陣列  -- 陣列就是列表

li1 = [3, 4, 7, 9, 10, 11]

li2 = [2, 6, 12]

# 制定乙個變數 用來取li1的值 從下標為0 的地方開始

ind = 0 # 儲存陣列中數字的下標的變數

ans = li1.copy() # 遍歷li2 依次與li1的值進行比較 所以copyli1 儲存排序後的陣列重點而變了

# 根據下標 進行 遍歷li1

for i in range(len(li2)):

# 迴圈執行的條件是 ind不大於 li1的長度(大於時候 已經不需要在繼續比了) 有序列表

# 使用while的原因是需要在乙個數字前面可能要插入兩個數字 而for只能插入乙個

while ind < len(li1):

# # 當li1[i]的值小於li2[ind]的值的時候 就根據下標新增到ans中

if li2[i] <= li1[ind]:

ans.insert(i+ind, li2[i])

break

else:

ind += 1

else:

# 當迴圈借宿的時候 說明li1列表已經遍歷完了 若li2未遍歷完 剩餘的直接進行切片加入列表即可

ans += li2[i:]

break

print(ans)

陣列 合併有序陣列 雙指標

leetcode88 給你兩個有序整數陣列 nums1 和 nums2,請你將 nums2 合併到 nums1 中,使 nums1 成為乙個有序陣列。初始化 nums1 和 nums2 的元素數量分別為 m 和 n 你可以假設 nums1 的空間大小等於 m n,這樣它就有足夠的空間儲存來自 num...

合併有序陣列問題

有這樣乙個問題,現在有兩個有序的陣列,第乙個陣列的空間足夠容納兩個有序陣列中的數,利用高效的方法把兩個陣列合併,並使得陣列是有序的,且最後得到的是第乙個陣列,同時不借助其他額外的儲存空間。其實這種題的解法幾乎都是一樣的,都是從最後乙個數開始,這就是取極值的思想,因為陣列是有序的,所以,每個陣列中最大...

合併有序陣列

時限 1000ms 記憶體限制 10000k 總時限 3000ms 描述 給你兩個有序且公升序的陣列,請你把它們合成乙個公升序陣列並輸出 give you two ordered ascending array,you put them into one ascending array and ou...