Recca Chao 的 gitHub page

推廣網站開發,包含 Laravel 和 Kotlin 後端撰寫、自動化測試、讀書心得等。Taiwan Kotlin User Group 管理員。

View on GitHub

Kotlin Leetcode - 1720. Decode XORed Array

題目連接

class Solution {
    fun decode(encoded: IntArray, first: Int): IntArray {
    }
}

解題思路

這一題考的是 xor 的處理方式

利用 kotlin 內建的 xor 可以很直觀地解決這個題目

迴圈的部分可以使用傳統的 for

或者 forEachIndexed

Kotlin 參考解答

點擊展開解答
class Solution {
    fun decode(encoded: IntArray, first: Int): IntArray {
        val decodedArray = IntArray(encoded.size + 1)
        decodedArray[0] = first
        
        for (i in encoded.indices) {
            decodedArray[i + 1] = decodedArray[i] xor encoded[i]
        }
        return decodedArray 
    }
}

如果將其中的 forforEachIndexed 改寫

可以寫成

class Solution {
    fun decode(encoded: IntArray, first: Int): IntArray {
        val decodedArray = IntArray(encoded.size + 1)
        decodedArray[0] = first

        encoded.forEachIndexed { i, encode -> decodedArray[i + 1] = decodedArray[i] xor encode }
        return decodedArray 
    }
}

回到 leetcode 列表