首页 > 其他分享 >解码异或后的数组

解码异或后的数组

时间:2022-09-03 23:12:50浏览次数:60  
标签:arr int 解码 异或 数组 encode encoded first

一、题目描述

给定一个非负整数数组arr,经过编码后新数组encode的长度为n-1,编码的规则为encode[i] = arr[ i ] ★arr [i+1] (★为异或符)。给出编码后encode数组,和原来数组的第一个元素。返回解码后的arr数组。

输入:encoded = [1,2,3], first = 1
输出:[1,0,2,1]

输入:encoded = [6,2,7,3], first = 4
输出:[4,2,0,7,4]

二、题目分析

可以通过★运算反向推理的出
encode[i-1] = arr[ i ] ★ arr [i-1]
encode[i-1] ★ arr [i-1] = arr[ i ] ★arr [i-1] ★ arr [i-1]
encode[i-1] ★ arr [i-1] = arr[ i ]
注:
位运算这里指定是将整数先转换为二进制数,然后再进行位运算,1★1或 0★0 都为0,1★0为1;所以得0★任何数都为任何数。任何数★任何数都0;

三、解题思路

通过推导encode[i] ★ arr [i+1] = arr[ i ]得到每一位数。
代码实现:

public int[] decode(int[] encoded, int first) {
        int n = encoded.length+1;

        int[] arr = new int[n];
        arr[0] = first;
        for(int i = 1; i<n; i++){
            arr[i] = encoded[i-1] ^ arr[i-1];
        }

        return arr;
    }

标签:arr,int,解码,异或,数组,encode,encoded,first
From: https://www.cnblogs.com/zjjtt/p/16653922.html

相关文章

  • linux awk数组操作详细介绍
    linuxawk数组操作详细介绍-程默-博客园 https://www.cnblogs.com/chengmo/archive/2010/10/08/1846190.html用awk进行文本处理,少不了就是它的数组处理。那么awk数......
  • echarts爬坑记—数组反转reverse导致源数据发生改变
    原文链接:echarts爬坑记—数组反转reverse导致源数据发生改变–每天进步一点点(longkui.site) 0.背景上一篇文章中介绍了echarts让饼图数据和图例位置发生改变的。......
  • 创建员工表格,遍历数组获取每个员工,并且渲染到表格中
    首先是CSS部分,根据需求添加属性,可以调整  再是盒子部分  接下来是js部分:重点就是JS部分,利用遍历数组获取每个员工,再进行渲染,注意for下面的console.log(` 这里......
  • 树状数组
    前言:设有一个包含n个数的数组a[]={9,2,5,6,3,12......},现要求前i个数的和值,即前缀和sum[i]= a[1]+a[2]+a[3]+...+a[i](i=1,2,3...n),可以怎样求?首先想到......
  • [Leetcode 189]轮转数组
    Leetocde189轮转数组这题能被用做mid题是因为一题多解,其中基于双指针的轮状数组解法是比较难的1.使用新数组__直接把第i个元素移到第(i+k)%numsize位置,类似循环队列voi......
  • 1454. 异或和是质数的子集数 01背包
    题意给出n个互不相同的正整数。问存在多少个子集,使得子集中所有数的异或和是质数。由于答案可能很大,请你输出对109+7取模后的结果。分析题意就是指:从一堆元素中......
  • 树状数组学习笔记
    ​ 一:树状数组定义望文生义,树状数组就是用树形结构来模拟数组的一种数据结构。二:图解(纯手绘,难看勿喷)​编辑C表示从1-k的和,C[1]=a[1]C[2]=C[1]+a[2]C[3]=a[3]C[......
  • 数组:移除指定元素
    题目:给你一个数组nums 和一个值val,你需要原地移除所有数值等于 val 的元素,并返回移除后数组的新长度。不要使用额外的数组空间,你必须仅使用O(1)额外空间并原地......
  • react-native 类组件调用函数组件里面的方法
    父组件class类组件,关键代码我用红色部部分标记importReactfrom"react";import{View,Text}from"react-native";importHomeModalChilderfrom"../../compon......
  • java二维数组
    二维数组二维数组可以看成以数组为元素的数组。还可以有二维、三维、甚至更多维数组,但是实际开发中用的非常少。最多到二维数组(学习容器后,我们一般使用容器,二维数组用的......