給你兩個有序整數陣列 nums1 和 nums2,請你將 nums2 合併到 nums1 中,使 nums1 成為乙個有序陣列。
說明:初始化 nums1 和 nums2 的元素數量分別為 m 和 n 。
你可以假設 nums1 有足夠的空間(空間大小大於或等於 m + n)來儲存 nums2 中的元素。
示例:
思路:
因為num1的空間集中在後面,所以我們從後向前遍歷比較好。
(1)設定雙指標p1、p2, 分別指向有序陣列的最後一位;
(2)從後向前遍歷,終止條件:
1、其中乙個指標不在指向陣列
2、比較雙指標指向的值
3、大的或相同的值放到 num1 空間的尾部( 尾部從後向前依次填充 ), 對應的指標向前挪一位
4、迴圈上面步驟
(3)遍歷完成後檢查,若指向 num2 的指標還有效, 說明 num2 中還有小於 num1 最小值的存在,將這些值搬移到 num1 最前。
class
solution
// 表示將nums2陣列從下標0位置開始,拷貝到nums1陣列中,從下標0位置開始,長度為len2+1
system.
arraycopy
(nums2,
0, nums1,
0, p2 +1)
;}}
這是原先的思路:
class
solution
else
}for
(int i =
0; i < p2 +
1; i++)}
}
隨筆(二十七)
1.安卓開發外掛程式推薦 2.必知必會 android 測試相關的方方面面都在這兒 3android ui效能優化 檢測應用中的ui卡頓 4.recyclerview的拖動和滑動 第一部分 基本的itemtouchhelper示例 支援側滑和排序 5 android觸控事件分發機制詳解 6.andr...
二十七 快速排序
快速排序其實是逐次對每個基數進行排序,當達到乙個臨界值 也就是當元素個數達到一定數量時,簡單的插入排序速度會大於快排 的時候就用插入排序來進行,其實這也是乙個分治處理的過程,和歸併思想大同小異,由於歸併要進行多次遞迴,而快排基於基數每次進行線性時間的分組,所以理想情況下快排優於歸併。這裡就直接上 i...
一百二十七
頭疼編寫k8s部署檔案?k8s yaml 引數很多,需要邊寫邊查?保留回滾版本數怎麼設?如何探測啟動成功,如何探活?如何分配和限制資源?如何設定時區?否則列印日誌是gmt標準時間 如何暴露服務供其它服務呼叫?如何根據cpu和記憶體使用率來配置水平伸縮?首先,你需要知道有這些知識點,其次要把這些知識點...