摘要:題目地址題目描述給定兩個有序整數數組和,將合并到中,使得成為一個有序數組。說明初始化和的元素數量分別為和。你可以假設有足夠的空間空間大小大于或等于來保存中的元素。示例輸入輸出解答這一題如果用兩個循環是可以做出來的,但是復雜度過大。
題目地址:
https://leetcode-cn.com/probl...
題目描述:
給定兩個有序整數數組 nums1 和 nums2,將 nums2 合并到 nums1 中,使得 num1 成為一個有序數組。 說明: 初始化 nums1 和 nums2 的元素數量分別為 m 和 n。 你可以假設 nums1 有足夠的空間(空間大小大于或等于 m + n)來保存 nums2 中的元素。 示例: 輸入: nums1 = [1,2,3,0,0,0], m = 3 nums2 = [2,5,6], n = 3 輸出: [1,2,2,3,5,6]
解答:
這一題如果用兩個for循環是可以做出來的,但是復雜度過大。
面試的時候一定是讓用更快的方法解這個題,那么該怎么辦?
只要歸并的時候從大到小歸并即可,每次都選擇兩個數組結尾處最大的
元素插入新數組,這樣一遍掃描即可完成。
java ac代碼:
class Solution { public void merge(int[] nums1, int m, int[] nums2, int n) { //先歸并大的,這樣一遍掃面即可。 for(int k = m+n-1,i = m-1,j = n-1;k >= 0;k--) { if(i < 0) { nums1[k] = nums2[j--]; continue; } if(j < 0) { nums1[k] = nums1[i--]; continue; } if(nums1[i] >= nums2[j]) nums1[k] = nums1[i--]; else nums1[k] = nums2[j--]; } } }
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/74580.html
摘要:示例輸入輸出解釋答案應為除去外,在區間內的所有數字。即這個數最多位。解答這一題就是利用回溯法求組合數,從這個集合中求。 題目地址:https://leetcode-cn.com/probl...題目描述:給定一個非負整數 n,計算各位數字都不同的數字 x 的個數,其中 0 ≤ x < 10的n次方 。 示例: 輸入: 2輸出: 91 解釋: 答案應為除去 11,22,33,44,55,...
摘要:此專欄文章是對力扣上算法題目各種方法的總結和歸納整理出最重要的思路和知識重點并以思維導圖形式呈現當然也會加上我對導圖的詳解目的是為了更方便快捷的記憶和回憶算法重點不用每次都重復看題解畢竟算法不是做了一遍就能完全記住的所 ...
摘要:圖因此可以成為樹,在所有可能的樹中,具有最小高度的樹被稱為最小高度樹。給出這樣的一個圖,寫出一個函數找到所有的最小高度樹并返回他們的根節點。因此使用一個數組代表每個節點的入度,若入度為就是葉子節點。 題目地址:https://leetcode-cn.com/probl...題目描述: 對于一個具有樹特征的無向圖,我們可選擇任何一個節點作為根。圖因此可以成為樹,在所有可能的樹中,具有最小...
摘要:關于遞歸這里提一兩點遞歸基本有這幾步遞歸的模板,終止條件,遞歸調用,邏輯處理。 ?作者簡介:大家好,我是車神哥,府學路18號的車神? ?個人主頁:應無所住而生...
閱讀 5029·2021-09-07 09:58
閱讀 780·2019-08-30 15:55
閱讀 2908·2019-08-30 15:55
閱讀 915·2019-08-30 15:53
閱讀 1549·2019-08-29 12:57
閱讀 1796·2019-08-26 13:46
閱讀 558·2019-08-26 11:00
閱讀 3657·2019-08-23 15:42