溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

LeetCode中怎么拆分?jǐn)?shù)組

發(fā)布時(shí)間:2021-08-12 15:39:14 來(lái)源:億速云 閱讀:119 作者:Leah 欄目:大數(shù)據(jù)

這篇文章將為大家詳細(xì)講解有關(guān)LeetCode中怎么拆分?jǐn)?shù)組,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個(gè)參考,希望大家閱讀完這篇文章后對(duì)相關(guān)知識(shí)有一定的了解。

給定長(zhǎng)度為 2n 的數(shù)組, 你的任務(wù)是將這些數(shù)分成 n 對(duì), 例如 (a1, b1), (a2, b2), ..., (an, bn) ,使得從1 到 n 的 min(ai, bi) 總和最大。


 示例

輸入: [1,4,3,2]

輸出: 4
解釋: n 等于 2, 最大總和為 4 = min(1, 2) + min(3, 4).
 


拿到這道題,是不是感到一頭霧水,大家可能在想,我要通過(guò)什么樣的算法才能找到分組后,每組最小值之和的值最大呢?大家可以先思考下。


如果你還沒有想到好的解決方法,我可以給你一些提示。


1. 如果你想使用蠻力去解,那肯定是無(wú)濟(jì)于事的,就像我上面說(shuō)的,你怎么知道哪些組合就行呢?所以需要換個(gè)角度考慮,比如你可以假設(shè)數(shù)組是[1,2,3,4,5,6]。


看完這個(gè)提示,不知道你有思路了沒有?如果還沒有,那我再給你一點(diǎn)提示。


2. 你怎么知道哪些組合比較好呢?所以數(shù)組必須要搞成某種形式的,方便查看的。


提示到這里,估計(jì)你已經(jīng)有點(diǎn)感覺了,但是好像還不知道怎么把數(shù)組搞成所謂的某種形式。那我再給你點(diǎn)提示。


3. 獲取兩個(gè)值的min,你肯定要失去較大的,那么就需要把較小的與較大的順序給找出來(lái)。


到這里,相信你應(yīng)該知道怎么做了。什么?你還不知道?那好吧,我就跟你明說(shuō)了吧。


4. 先給數(shù)組排序,排好序之后,隔兩個(gè)直接取和即可。


到這里,你應(yīng)該可以寫得出實(shí)現(xiàn)代碼了,下面是我給的一個(gè) Java 代碼示例:


class Solution {
   public int arrayPairSum(int[] nums) {
       Arrays.sort(nums);
       int result = 0;
       for(int i = 0; i < nums.length; i += 2) {
           result += nums[i];
       }
       return result;
   }
}

關(guān)于LeetCode中怎么拆分?jǐn)?shù)組就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI