ETH官方钱包

前往
大廳
主題

LeetCode - 2932. Maximum Strong Pair XOR I 解題心得

Not In My Back Yard | 2025-01-07 12:00:01 | 巴幣 2 | 人氣 29

題目連結(jié):


題目意譯:
你被給定一個(gè)索引值從 0 開始數(shù)的整數(shù)陣列 nums。一對(duì)整數(shù) x 和 y 被稱為一個(gè)「強(qiáng)力配對(duì)」,代表著其滿足以下條件:
    |x - y| ≦ min(x, y)

你需要從 nums 中選出兩個(gè)整數(shù)使它們形成一對(duì)強(qiáng)力配對(duì),並且它們的按位元(Bitwise)XOR 值是陣列中所有強(qiáng)力配對(duì)最大者。

回傳陣列 nums 的所有強(qiáng)力配對(duì)中最大的 XOR 值。

注意到你可以選同一個(gè)整數(shù)來形成一個(gè)數(shù)對(duì)。

限制:
1 ≦ nums.length ≦ 50
1 ≦ nums[i] ≦ 100



範(fàn)例測(cè)資:
範(fàn)例 1:
輸入: nums = [1,2,3,4,5]
輸出: 7
解釋: 陣列 nums 中有 11 個(gè)強(qiáng)力配對(duì):(1, 1) 、 (1, 2) 、 (2, 2) 、 (2, 3) 、 (2, 4) 、 (3, 3) 、 (3, 4) 、 (3, 5) 、 (4, 4) 、 (4, 5) 和 (5, 5)。
這些數(shù)對(duì)中最大的 XOR 值為 3 XOR 4 = 7。

範(fàn)例 2:
輸入: nums = [10,100]
輸出: 0
解釋: 陣列 nums 中有 2 個(gè)強(qiáng)力配對(duì):(10, 10) 和 (100, 100)。
這些數(shù)對(duì)中最大的 XOR 值為 10 XOR 10 = 0。而數(shù)對(duì) (100, 100) 也會(huì)得到 XOR 值 100 XOR 100 = 0。

範(fàn)例 3:
輸入: nums = [5,6,25,30]
輸出: 7
解釋: 陣列 nums 中有 6 個(gè)強(qiáng)力配對(duì):(5, 5) 、 (5, 6) 、 (6, 6) 、 (25, 25) 、 (25, 30) 和 (30, 30)。
這些數(shù)對(duì)中最大的 XOR 值為 25 XOR 30 = 7。而另一個(gè)非零 XOR 值的是 5 XOR 6 = 3。


解題思維:
由於 nums.length 最大也才 50 個(gè)數(shù)字,因此直接窮舉所有數(shù)對(duì)並取出那些是強(qiáng)力配對(duì)的(即符合 |x - y| ≦ min(x, y) 之條件者)取最大的 XOR 值即可。




此次分享到此為止,如有任何更加簡潔的想法或是有說明不清楚之地方,也煩請(qǐng)各位大大撥冗討論。
追蹤 創(chuàng)作集

作者相關(guān)創(chuàng)作

更多創(chuàng)作