iT邦幫忙

2024 iThome 鐵人賽

DAY 18
0
佛心分享-刷題不只是刷題

轉生理工組後從零開始的leetcode刷題系列 第 18

day-18[medium.421]maximum xor of numbers in an array

  • 分享至 

  • xImage
  •  

Given an integer array nums, return the maximum result of nums[i] XOR nums[j], where 0 <= i <= j < n.


是的,題目非常短!
給一個整數矩陣nums,我們要返回nums[i] XOR nums[j] 的最大結果,其中0 <=i <= j < n。

  • XOR = 比較兩個二進制數字的每一位,當兩位不同時返回1,否則0。
  • 我本來很怕沒有XOR運算語法,結果有,而且超簡單:” a^b ”

我的解題思路:

  1. 做一個存最大XOR的值
  2. 雙層for迴圈遍歷所有i,j的組合
  3. 比較得出的結果和目前最大XOR值
  4. 如果比較大就更新
  5. 遍歷所有組合後返回最大XOR值

class Solution {
    public int findMaximumXOR(int[] nums) {
        int max =0;  // 存儲最大XOR值
        int n = nums.length;
        
        // 雙層for迴圈遍歷
        for (int i = 0; i < n; i++) {
            for (int j = i; j < n; j++) {
                int xor = nums[i] ^ nums[j];  // nums[i] XOR nums[j]
                if (xor > max) {
                    max = xor;
                }
            }
        }
        return max;
    }
}


很輕鬆的成功啦~~本來還很擔心XOR要自己寫...
https://ithelp.ithome.com.tw/upload/images/20241003/20169432iPBQReMy9f.png


上一篇
day-17[medium.2637]count the number of good subarrays
下一篇
day-19[medium.397]integer replacement
系列文
轉生理工組後從零開始的leetcode刷題30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言