最多可以製造幾個K-sum pairs_Leetcode 精選75題

2024/02/29閱讀時間約 5 分鐘

題目敘述

題目會給定我們一個整數陣列nums,我們每回合可以挑選總和為K的兩個數字,形成一個K-Sum pair

請問我們最多可以製造幾個K-Sum pair?

題目的原文敘述


測試範例

Example 1:

Input: nums = [1,2,3,4], k = 5
Output: 2
Explanation: Starting with nums = [1,2,3,4]:
- Remove numbers 1 and 4, then nums = [2,3]
- Remove numbers 2 and 3, then nums = []
There are no more pairs that sum up to 5, hence a total of 2 operations.

Example 2:

Input: nums = [3,1,3,4,3], k = 6
Output: 1
Explanation: Starting with nums = [3,1,3,4,3]:
- Remove the first two 3's, then nums = [1,4,3]
There are no more pairs that sum up to 6, hence a total of 1 operation.

約束條件

Constraints:

  • 1 <= nums.length <= 10^5

輸入陣列nums的長度介於1和10^5之間。

  • 1 <= nums[i] <= 10^9

陣列內每個數字都介於1~10^9之間。

  • 1 <= k <= 10^9

k值介於1~10^9之間。


演算法

這題題目問的是有幾個K-sum pair,其實如果把K當成2的話,就變成two-sum pair了,這題基本上可以視為 Leetcode #1 Two sum的進階延伸推廣。


可以分成兩種情況討論:


第一種情況: nums[i] + nums[j] = k, 而且 nums[i] 不等於 nums[j]

也就是說,這個pair是由一大一小的數字所組成,總和為k。

例如測試範例中的

 Input: nums = [1,2,3,4], k = 5
以行動支持創作者!付費即可解鎖
本篇內容共 2243 字、0 則留言,僅發佈於Leetcode 精選75題 上機考面試題 詳解你目前無法檢視以下內容,可能因為尚未登入,或沒有該房間的查看權限。
43會員
283內容數
由有業界實戰經驗的演算法工程師, 手把手教你建立解題的框架, 一步步寫出高效、清晰易懂的解題答案。 著重在讓讀者啟發思考、理解演算法,熟悉常見的演算法模板。 深入淺出地介紹題目背後所使用的演算法意義,融會貫通演算法與資料結構的應用。 在幾個經典的題目融入一道題目的多種解法,或者同一招解不同的題目,擴展廣度,並加深印象。
留言0
查看全部
發表第一個留言支持創作者!