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
        }
    }
  • 相关阅读:
    redis集群搭建
    redis状态查看
    redis动态修改参数配置
    redis的info
    redis安装配置
    redis命令总结
    rabbitmq安装
    怎么把U盘启动改为硬盘启动(适用于U盘安装系统时)
    监控宝篇之一(快速入门)
    raid详解
  • 原文地址:https://www.cnblogs.com/johnnyzhao/p/14258500.html
Copyright © 2011-2022 走看看