zoukankan      html  css  js  c++  java
  • 1720. Decode XORed Array

    package LeetCode_1720
    
    /**
     * 1720. Decode XORed Array
     * https://leetcode.com/problems/decode-xored-array/
     * There is a hidden integer array arr that consists of n non-negative integers.
    It was encoded into another integer array encoded of length n - 1, such that encoded[i] = arr[i] XOR arr[i + 1].
    For example, if arr = [1,0,2,1], then encoded = [1,2,3].
    You are given the encoded array. You are also given an integer first, that is the first element of arr, i.e. arr[0].
    Return the original array arr. It can be proved that the answer exists and is unique.
    
    Example 1:
    Input: encoded = [1,2,3], first = 1
    Output: [1,0,2,1]
    Explanation: If arr = [1,0,2,1], then first = 1 and encoded = [1 XOR 0, 0 XOR 2, 2 XOR 1] = [1,2,3]
    
    Example 2:
    Input: encoded = [6,2,7,3], first = 4
    Output: [4,2,0,7,4]
    
    Constraints:
    1. 2 <= n <= 104
    2. encoded.length == n - 1
    3. 0 <= encoded[i] <= 105
    4. 0 <= first <= 105
     * */
    class Solution {
        /*
        * Solution: XOR the same number twice, all operations on this number will be cancel:a xor b xor a = b;
        * because encoded[i] = result[i] xor result[i+1], 
        * so we add: encoded[i] xor result[i+1] in both side =>
        * encoded[i] xor encoded[i] xor result[i+1] = result[i] xor result[i+1] xor encoded[i] xor result[i+1], 
        * then get:
        * result[i+1]  = result[i] xor encoded[i];
        * Time:O(n), Space:O(1)
        * */
        fun decode(encoded: IntArray, first: Int): IntArray {
            val result = IntArray(encoded.size + 1)
            result[0] = first
            for (i in encoded.indices) {
                result[i + 1] = encoded[i].xor(result[i])
            }
            return result
        }
    }
  • 相关阅读:
    setjmp和longjmp函数使用详解
    一文搞懂HMM(隐马尔可夫模型)
    Qt多工程多目录的编译案例
    HTML中Id和Name的区别
    字符识别中的图像归一化算法
    QT工程pro设置实践(with QtCreator)----非弄的像VS一样才顺手?
    暗通道优先的图像去雾算法
    callback用法简介
    ansible 批量部署准备工作
    MySQL高级管理
  • 原文地址:https://www.cnblogs.com/johnnyzhao/p/14258500.html
Copyright © 2011-2022 走看看