簡單演算法
指標概述
『指標』就是程式語言中的乙個物件,它儲存這乙個記憶體空間的位址,計算機可以通過這個位址找到變數的值,也就是說,這個特定的位址指向這個值。指標的最大優點是在於它可以有效的利用零碎的記憶體空間
在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...