摘要:題目假設(shè)數(shù)組的長(zhǎng)度大于需要排序的元素?cái)?shù)量數(shù)組的后位為。解法看到這道題時(shí)一種常規(guī)思路可能是,從頭遍歷兩個(gè)數(shù)組,將的元素插入到的合適的位置。
題目詳情
Given two sorted integer arrays nums1 and nums2, merge nums2 into nums1 as one sorted array.
題目的意思是,輸入兩個(gè)已經(jīng)排好序的數(shù)組nums1和nums2,要根據(jù)順序把nums2種的元素并入nums1數(shù)組中。其中,nums1數(shù)組的待排序元素?cái)?shù)量為m,nums2數(shù)組的待排序元素?cái)?shù)量為n。題目假設(shè)nums1數(shù)組的長(zhǎng)度大于需要排序的元素?cái)?shù)量(數(shù)組的后n位為0)。解法
看到這道題時(shí)一種常規(guī)思路可能是,從頭遍歷兩個(gè)數(shù)組,將nums2的元素插入到nums1的合適的位置。但是在這道題里,數(shù)組的插入會(huì)導(dǎo)致大量的工作量。
同時(shí)我們注意到,nums1數(shù)組的后n個(gè)位置都是可以被利用的,同時(shí)對(duì)于這些位置元素的改變并不會(huì)影響nums1數(shù)組前面待排序的元素。
所以我們從最大的待排序元素進(jìn)行判斷,將最大的元素賦值給nums1的最后一個(gè)元素...以此類推
如果nums1的元素全部排序完畢,nums2的元素還有剩余,那么我們要將nums2數(shù)組剩下的元素插入nums1數(shù)組中。如果nums2數(shù)組先被排序完畢,那么就直接得到了最后的結(jié)果。
public void merge(int[] nums1, int m, int[] nums2, int n) { int i = m-1; int j = n-1; int k = m+n-1 ; while(i >= 0 && j >= 0 ){ if(nums1[i] > nums2[j]){ nums1[k--] = nums1[i--]; }else{ nums1[k--] = nums2[j--]; } } while(j >= 0){ nums1[k--] = nums2[j--]; } }
這道題的描述不是很清晰,如果理解了,想法還是比較簡(jiǎn)單的~
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/68227.html
摘要:題目要求將兩個(gè)有序數(shù)組合并至其中一個(gè)數(shù)組并且該新數(shù)組仍然有序。所以我們可以換一種思維方式,從大至小遍歷,這樣可以將較大的元素直接填入當(dāng)前的位置而且不用考慮移動(dòng)其它的元素。 題目要求 Given two sorted integer arrays nums1 and nums2, merge nums2 into nums1 as one sorted array. Note: You...
摘要:自己沒(méi)事刷的一些的題目,若有更好的解法,希望能夠一起探討項(xiàng)目地址 自己沒(méi)事刷的一些LeetCode的題目,若有更好的解法,希望能夠一起探討 Number Problem Solution Difficulty 204 Count Primes JavaScript Easy 202 Happy Number JavaScript Easy 190 Reverse Bi...
摘要:前言從開(kāi)始寫(xiě)相關(guān)的博客到現(xiàn)在也蠻多篇了。而且當(dāng)時(shí)也沒(méi)有按順序?qū)懍F(xiàn)在翻起來(lái)覺(jué)得蠻亂的??赡艽蠹铱粗卜浅2环奖恪K栽谶@里做個(gè)索引嘻嘻。順序整理更新更新更新更新更新更新更新更新更新更新更新更新更新更新更新更新 前言 從開(kāi)始寫(xiě)leetcode相關(guān)的博客到現(xiàn)在也蠻多篇了。而且當(dāng)時(shí)也沒(méi)有按順序?qū)憽F(xiàn)在翻起來(lái)覺(jué)得蠻亂的??赡艽蠹铱粗卜浅2环奖?。所以在這里做個(gè)索引嘻嘻。 順序整理 1~50 1...
Problem Given two sorted integer arrays A and B, merge B into A as one sorted array. Notice You may assume that A has enough space (size that is greater or equal to m + n) to hold additional elements ...
摘要:但是如果我們從后往前,合并到第一個(gè)數(shù)組的最后,則不用位移。注意將和都先減,用和來(lái)代表下標(biāo),避免兩個(gè)數(shù)組為空時(shí)拋出空指針異常。 Merge Sorted Array 最新更新請(qǐng)見(jiàn):https://yanjia.me/zh/2019/02/... Given two sorted integer arrays nums1 and nums2, merge nums2 into nums1...
閱讀 1884·2021-09-23 11:21
閱讀 726·2019-08-30 15:55
閱讀 867·2019-08-29 15:40
閱讀 584·2019-08-29 12:56
閱讀 3196·2019-08-26 12:00
閱讀 3591·2019-08-23 18:24
閱讀 2282·2019-08-23 17:08
閱讀 1669·2019-08-23 17:03