這題陣列要結合另一個陣列並且進行排序。
LeetCode 題目連結
https://leetcode.com/problems/merge-sorted-array/
題目
Given two sorted integer arrays nums1 and nums2, merge nums2 into nums1 as one sorted array.
Note:
- The number of elements initialized in nums1 and nums2 are m and n respectively.
- You may assume that nums1 has enough space (size that is greater or equal to m + n) to hold additional elements from nums2.
Example:
Input: nums1 = [1,2,3,0,0,0], m = 3 nums2 = [2,5,6], n = 3 Output: [1,2,2,3,5,6]
Accept 作法
Runtime: 1 ms
Memory: 39.8 MB
Java 程式碼
class Solution { public void merge(int[] nums1, int m, int[] nums2, int n) { int index = 0; for(int i = m;i<(m + n);i++){ nums1[i] = nums2[index]; index++; } // Arrays.sort(nums1); // sort for(int i = 0; i < nums1.length;i++){ for(int j = i +1;j<nums1.length;j++){ if(nums1[i] > nums1[j]){ int tmp = nums1[i]; nums1[i] = nums1[j]; nums1[j] = tmp; } } } } }
更多 LeetCode 相關資源
複習程式面試書籍
除了 LeetCode 練習外,我也入手了這本,題庫來自真正的面試,並非摘自教科書。它們反映出頂尖公司真正會出的題目,你可以藉此做好充分準備。
需要的話可以看看,寫得很仔細。
需要的話可以看看,寫得很仔細。
這題的關鍵在於兩個陣列都已經排完序,而且要使用原地演算法
回覆刪除如果從小排到大的話會把陣列1的元素覆蓋,因此要從大排到小,依序比較陣列1、2的值並塞到陣列1尾端
謝謝您清晰的解說!
刪除