摘要:題目要求兩個(gè)單調(diào)遞增的整數(shù)數(shù)組,現(xiàn)分別從數(shù)組和數(shù)組中取一個(gè)數(shù)字構(gòu)成數(shù)對(duì),求找到個(gè)和最小的數(shù)對(duì)。思路這題采用最大堆作為輔助的數(shù)據(jù)結(jié)構(gòu)能夠完美的解決我們的問(wèn)題。每從堆中取走一個(gè)數(shù)對(duì),就插入,從而確保堆中的數(shù)對(duì)都可以從小到大遍歷到。
題目要求
You are given two integer arrays nums1 and nums2 sorted in ascending order and an integer k. Define a pair (u,v) which consists of one element from the first array and one element from the second array. Find the k pairs (u1,v1),(u2,v2) ...(uk,vk) with the smallest sums.
兩個(gè)單調(diào)遞增的整數(shù)數(shù)組,現(xiàn)分別從數(shù)組1和數(shù)組2中取一個(gè)數(shù)字構(gòu)成數(shù)對(duì),求找到k個(gè)和最小的數(shù)對(duì)。
思路這題采用最大堆作為輔助的數(shù)據(jù)結(jié)構(gòu)能夠完美的解決我們的問(wèn)題。觀察數(shù)組我們可以看到,從nums1中任意取一個(gè)數(shù)字,其和nums2中的數(shù)字組成的最小數(shù)對(duì)一定是
public ListkSmallestPairs(int[] nums1, int[] nums2, int k) { List result = new ArrayList (); if(nums1.length == 0 || nums2.length == 0 || k == 0) return result; PriorityQueue heap = new PriorityQueue (new Comparator (){ @Override public int compare(int[] o1, int[] o2) { return o1[0] + o1[1] - o2[0] - o2[1]; }}); for(int i = 0 ; i 想要了解更多開(kāi)發(fā)技術(shù),面試教程以及互聯(lián)網(wǎng)公司內(nèi)推,歡迎關(guān)注我的微信公眾號(hào)!將會(huì)不定期的發(fā)放福利哦~
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/72557.html
摘要:題目鏈接先把一組里面和另外一組最小元素的組合放進(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出和最小的,同...
摘要:利用特點(diǎn)進(jìn)行排序。我們需要構(gòu)建一個(gè)數(shù)據(jù)結(jié)構(gòu),一個(gè)表示在的位置,一個(gè)表示在的位置,他們的和,用來(lái)排序。我們首先向里,和所有的元素的和。每次我們一組數(shù),然后增加的會(huì)自然的進(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...
摘要:復(fù)雜度是,其中。這做法和異曲同工??戳司W(wǎng)上給的解法,沒(méi)有二分,二分的是結(jié)果。每次找到一個(gè),然后求比它小的元素的個(gè)數(shù),根據(jù)個(gè)數(shù)大于還是小于來(lái)二分。參考算的時(shí)候可以優(yōu)化 378. Kth Smallest Element in a Sorted Matrix 題目鏈接:https://leetcode.com/problems... 求矩陣?yán)锩娴趉小的數(shù),首先比較容易想到的是用heap來(lái)做...
Problem Given an array nums and a target value k, find the maximum length of a subarray that sums to k. If there isnt one, return 0 instead. Note The sum of the entire nums array is guaranteed to fit ...
閱讀 1226·2023-04-26 02:20
閱讀 3349·2021-11-22 14:45
閱讀 4166·2021-11-17 09:33
閱讀 1020·2021-09-06 15:00
閱讀 1492·2021-09-03 10:30
閱讀 3900·2021-07-26 22:01
閱讀 1004·2019-08-30 15:54
閱讀 544·2019-08-30 15:43