成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

373. Find K Pairs with Smallest Sums

wing324 / 1605人閱讀

摘要:題目鏈接先把一組里面和另外一組最小元素的組合放進(jìn),然后每次出和最小的,同時(shí)放進(jìn)去有可能成為第二小的組合,即當(dāng)前元素的下一個(gè)和元素的組合。

373. Find K Pairs with Smallest Sums

題目鏈接:https://leetcode.com/problems...

greedy: 先把一組x里面和另外一組y最小元素的組合放進(jìn)heap,然后每次poll出和最小的,同時(shí)放進(jìn)去有可能成為第二小的組合,即當(dāng)前y元素的下一個(gè)和x元素的組合。

public class Solution {
    public List kSmallestPairs(int[] nums1, int[] nums2, int k) {
        if(nums1.length == 0 || nums2.length == 0)  return new ArrayList();
        
        // heap: [nums1[i], nums2[j], i, j]
        PriorityQueue minHeap = new PriorityQueue<>(k, (a, b) -> a[0] + a[1] - (b[0] + b[1]));
        // add combination of element from one array with the first element of another
        for(int i = 0; i < Math.min(nums1.length, k); i++) {
            minHeap.offer(new int[] {nums1[i], nums2[0], i, 0});
        }
        // greedy
        List result = new ArrayList();
        while(k-- > 0 && !minHeap.isEmpty()) {
            int[] cur = minHeap.poll();
            int i = cur[2], j = cur[3];
            result.add(new int[] {cur[0], cur[1]});
            if(j + 1 < nums2.length) minHeap.offer(new int[] {nums1[i], nums2[j + 1], i, j + 1});
        }
        
        return result;
    }
}

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/66628.html

相關(guān)文章

  • leetcode373. Find K Pairs with Smallest Sums

    摘要:題目要求兩個(gè)單調(diào)遞增的整數(shù)數(shù)組,現(xiàn)分別從數(shù)組和數(shù)組中取一個(gè)數(shù)字構(gòu)成數(shù)對,求找到個(gè)和最小的數(shù)對。思路這題采用最大堆作為輔助的數(shù)據(jù)結(jié)構(gòu)能夠完美的解決我們的問題。每從堆中取走一個(gè)數(shù)對,就插入,從而確保堆中的數(shù)對都可以從小到大遍歷到。 題目要求 You are given two integer arrays nums1 and nums2 sorted in ascending order ...

    Lavender 評論0 收藏0
  • 373. Find K Pairs with Smallest Sums

    摘要:利用特點(diǎn)進(jìn)行排序。我們需要構(gòu)建一個(gè)數(shù)據(jù)結(jié)構(gòu),一個(gè)表示在的位置,一個(gè)表示在的位置,他們的和,用來排序。我們首先向里,和所有的元素的和。每次我們一組數(shù),然后增加的會自然的進(jìn)行排序。 Given nums1 = [1,7,11], nums2 = [2,4,6], k = 3 Return: [1,2],[1,4],[1,6] The first 3 pairs are returne...

    ningwang 評論0 收藏0
  • 378. Kth Smallest Element in a Sorted Matrix

    摘要:復(fù)雜度是,其中。這做法和異曲同工??戳司W(wǎng)上給的解法,沒有二分,二分的是結(jié)果。每次找到一個(gè),然后求比它小的元素的個(gè)數(shù),根據(jù)個(gè)數(shù)大于還是小于來二分。參考算的時(shí)候可以優(yōu)化 378. Kth Smallest Element in a Sorted Matrix 題目鏈接:https://leetcode.com/problems... 求矩陣?yán)锩娴趉小的數(shù),首先比較容易想到的是用heap來做...

    Y3G 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<