首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在随机存储到另一个数组后,找出哪个值与哪个数组(例如:数组a、数组b)相关

在处理将元素随机存储到另一个数组后,确定某个值与原始数组的关联性问题时,可以采用以下几种方法:

基础概念

  • 哈希表(Hash Table):一种数据结构,通过键值对存储数据,能够实现快速的查找、插入和删除操作。
  • 映射(Mapping):将一个集合中的元素与另一个集合中的元素建立一一对应的关系。

相关优势

  • 高效查找:使用哈希表可以在平均时间复杂度为O(1)的情况下找到元素的来源数组。
  • 灵活性:适用于各种规模的数组和不同的应用场景。

类型与应用场景

  • 一对一映射:每个元素在目标数组中唯一对应一个原始数组。
  • 多对一映射:多个元素可能对应同一个原始数组。

解决方案

假设我们有两个原始数组arrayAarrayB,以及一个目标数组targetArray,我们需要在随机填充targetArray后,能够追踪每个元素来自哪个原始数组。

步骤:

  1. 创建映射表:使用一个哈希表来记录每个元素及其来源数组。
  2. 填充目标数组:在随机选择元素填充targetArray的同时,更新映射表。
  3. 查询来源:通过映射表查询任意元素的来源数组。

示例代码(JavaScript):

代码语言:txt
复制
// 原始数组
const arrayA = [1, 2, 3];
const arrayB = [4, 5, 6];

// 目标数组
const targetArray = [];

// 映射表
const map = new Map();

// 随机填充目标数组并记录映射关系
function fillTargetArray(sourceArrays, target) {
    for (let i = 0; i < target.length; i++) {
        // 随机选择一个源数组
        const sourceArray = sourceArrays[Math.floor(Math.random() * sourceArrays.length)];
        // 随机选择一个元素
        const element = sourceArray[Math.floor(Math.random() * sourceArray.length)];
        // 添加到目标数组
        target[i] = element;
        // 记录映射关系
        map.set(element, sourceArray);
    }
}

// 查询元素的来源数组
function getSourceArray(element) {
    return map.get(element);
}

// 使用示例
fillTargetArray([arrayA, arrayB], targetArray);

console.log("Target Array:", targetArray);
console.log("Source of element 3:", getSourceArray(3)); // 可能输出 arrayA 或 arrayB

解释

  • 映射表 (map) 用于存储每个元素及其对应的原始数组。
  • 填充函数 (fillTargetArray) 在每次随机选择元素时更新映射表。
  • 查询函数 (getSourceArray) 利用映射表快速找到元素的来源数组。

这种方法不仅适用于两个数组,还可以扩展到多个数组的情况,只需调整源数组的选择逻辑即可。通过这种方式,即使在元素被随机重新排列后,也能准确地追踪其原始来源。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

70个NumPy练习:在Python下一举搞定机器学习矩阵运算

难度:2 问题:颠倒二维数组arr的列。 答案: 20.如何创建一个包含5到10之间随机浮点数的二维数组? 难度:2 问题:创建一个5×3的二维数组,以包含5到10之间的随机浮点数。...难度:1 问题:找出 iris的 sepallength平均值,中位数,标准差(第1列) 答案: 29.如何标准化一个数组至0到1之间?...答案: 31.如何找到一个numpy数组的百分位的值? 难度:1 问题:找到iris的sepallength第5位和第95百分位的值。 答案: 32.如何在数组中的随机位置插入一个值?...难度:2 问题:找出数组iris_2d是否有缺失的值。 答案: 38.如何在numpy数组中使用0替换所有缺失值? 难度:2 问题:在numpy数组中用0替换nan。...难度:4 问题:计算有唯一值的行数。 输入: 输出: 输出包含10列,表示1到10之间的数字。这些值是相应行中数字数量。 例如,单元(0,2)的值为2,这意味着数字3在第一行中恰好出现2次。

20.7K42

大厂面试系列(七):数据结构与算法等

java 中数组和链表的区别,各自优势 如何设计拥有高效的随机读取能力的的链表(跳表) 设计跳表,跳表插入开销,跳表随机读取过程 给你一个单向链表,给这个链表做K反转,例如 k=3 1 -> 2 ->...,得到这个数组的全排列的数组,如[2,1,3,4],•[2,1,4,3]。。。。...先跟面试官说了思路,然后又在白纸上写了出来 对一个数组进行绝对值排序的算法; 非降序数组,打印某个值最后出现的位置 找出数组中超过半数的那个数字(摩尔投票) 一个数组反转,o(logn)复杂度用什么排序算法...如何在第二天就可以判断出哪个瓶子有毒 看你简历提到了raft算法,讲下raft算法的基本流程?raft算法里面如果出现脑裂怎么处理?...); 实现一个random(m,n)方法,返回m到n的随机数 64只球队找到最强的,找前二强的,前k强的 就是m*n的矩形从左上面到右下面的路径有多少条 求N内的所有素数 判断字符串是否是一个数字 当一个文本文件中有

1.2K20
  • 【深度学习基础】预备知识 | 数据操作

    为了能够完成各种数据操作,我们需要某种方法来存储和操作数据。通常,我们需要做两件重要的事:(1)获取数据;(2)将数据读入计算机后对其进行处理。...张量中的每个值都称为张量的元素(element)。例如,张量 x 中有 12 个元素。除非额外指定,新的张量将存储在内存中,并采用基于CPU的计算。...例如,当我们构造数组来作为神经网络中的参数时,我们通常会随机初始化参数的值。以下代码创建一个形状为(3,4)的张量。其中的每个元素都从均值为0、标准差为1的标准高斯分布(正态分布)中随机采样。...运行Y = Y + X后,我们会发现id(Y)指向另一个位置。这是因为Python首先计算Y + X,为结果分配新的内存,然后使Y指向内存中的这个新位置。...为了说明这一点,我们首先创建一个新的矩阵Z,其形状与另一个Y相同,使用zeros_like来分配一个全 0 的块。

    4600

    Java面试题:百度前200页都在这里了

    ,是值传递还是引用传递 当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递 我们能否重载main()方法 如果main方法被声明为private...2乘以17等于多少 有 1 亿个数字,其中有 2 个是重复的,快速找到它,时间和空间要最优 2 亿个随机生成的无序整数,找出中间大小的值 10 亿个数字里里面找最小的 10 个 1到1亿的自然数,求所有数的拆分后的数字之和...,如286 拆分成2、8、6,如1到11拆分后的数字之和 => 1 + … + 9 + 1 + 0 + 1 + 1 一个数如果恰好等于它的因子之和,这个数就称为 “完数 “。...例如6=1+2+3.编程 找出1000以内的所有完数 一个数组中所有的元素都出现了三次,只有一个元素出现了一次找到这个元素 一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在 第10...求出1到100的和 算出1到40的质数,放进数组里 显示放组里的数 找出第[5]个数 删除第[9]个数,再显示删除后的第[9]个 有 3n+1 个数字,其中 3n 个中是重复的,只有 1 个是不重复的,

    1K20

    Java 面试题:百度前200页都在这里了

    ,是值传递还是引用传递 当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递 我们能否重载main()方法 如果main方法被声明为private...2乘以17等于多少 有 1 亿个数字,其中有 2 个是重复的,快速找到它,时间和空间要最优 2 亿个随机生成的无序整数,找出中间大小的值 10 亿个数字里里面找最小的 10 个 1到1亿的自然数,求所有数的拆分后的数字之和...,如286 拆分成2、8、6,如1到11拆分后的数字之和 => 1 + … + 9 + 1 + 0 + 1 + 1 一个数如果恰好等于它的因子之和,这个数就称为 “完数 “。...例如6=1+2+3.编程 找出1000以内的所有完数 一个数组中所有的元素都出现了三次,只有一个元素出现了一次找到这个元素 一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在 第10...求出1到100的和 算出1到40的质数,放进数组里 显示放组里的数 找出第[5]个数 删除第[9]个数,再显示删除后的第[9]个 有 3n+1 个数字,其中 3n 个中是重复的,只有 1 个是不重复的,

    1.5K60

    百度Java面试题前200页都在这里了

    ,是值传递还是引用传递 当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递 我们能否重载main()方法 如果main方法被声明为private...2乘以17等于多少 有 1 亿个数字,其中有 2 个是重复的,快速找到它,时间和空间要最优 2 亿个随机生成的无序整数,找出中间大小的值 10 亿个数字里里面找最小的 10 个 1到1亿的自然数,求所有数的拆分后的数字之和...,如286 拆分成2、8、6,如1到11拆分后的数字之和 => 1 + ... + 9 + 1 + 0 + 1 + 1 一个数如果恰好等于它的因子之和,这个数就称为 “完数 “。...例如6=1+2+3.编程 找出1000以内的所有完数 一个数组中所有的元素都出现了三次,只有一个元素出现了一次找到这个元素 一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在 第10...求出1到100的和 算出1到40的质数,放进数组里 显示放组里的数 找出第[5]个数 删除第[9]个数,再显示删除后的第[9]个 有 3n+1 个数字,其中 3n 个中是重复的,只有 1 个是不重复的,

    1.3K20

    通往大神之路,Java面试题前200页。

    ,是值传递还是引用传递 当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递 我们能否重载main()方法 如果main方法被声明为private...2乘以17等于多少 有 1 亿个数字,其中有 2 个是重复的,快速找到它,时间和空间要最优 2 亿个随机生成的无序整数,找出中间大小的值 10 亿个数字里里面找最小的 10 个 1到1亿的自然数,求所有数的拆分后的数字之和...,如286 拆分成2、8、6,如1到11拆分后的数字之和 => 1 + ... + 9 + 1 + 0 + 1 + 1 一个数如果恰好等于它的因子之和,这个数就称为 “完数 “。...例如6=1+2+3.编程 找出1000以内的所有完数 一个数组中所有的元素都出现了三次,只有一个元素出现了一次找到这个元素 一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在 第10...求出1到100的和 算出1到40的质数,放进数组里 显示放组里的数 找出第[5]个数 删除第[9]个数,再显示删除后的第[9]个 有 3n+1 个数字,其中 3n 个中是重复的,只有 1 个是不重复的,

    1.7K60

    JavaScript 编程精解 中文第三版 四、数据结构:对象和数组

    统计绑定与编程绑定不完全相同。 在统计学中,你通常会有一组度量,并且每个绑定都根据每个度量来测量。 绑定之间的相关性通常表示为从 -1 到 1 的值。 相关性为零意味着绑定不相关。...相关性为一表明两者完全相关 - 如果你知道一个,你也知道另一个。 负一意味着它们是完全相关的,但它们是相反的 - 当一个是真的时,另一个是假的。...例如,若二进制数字为 10,表示雅克变成了松鼠,但事件并未发生(比如说吃比萨)。这种情况发生了 4 次。由于二进制数字 10 的十进制是 2,因此我们将其存储到数组中索引为 2 的位置上。...每次调用该函数时,会返回一个伪随机数,范围在 0(包括)到 1(不包括)之间。...为此,机器会维护一些隐藏的值,并且每当你请求一个新的随机数时,它都会对该隐藏值执行复杂的计算来创建一个新值。 它存储一个新值并返回从中派生的一些数字。

    1.9K100

    公司数据结构+算法面试100题

    (数组、规划) 有两个序列a,b,大小都为n,序列元素的值任意整数,无序; 要求:通过交换a,b中的元素,使[序列a元素的和]与[序列b元素的和]之间的差最小。...n-1,已知它们之间的实力对比关系, 存储在一个二维数组w[n][n]中,w[i][j] 的值代表编号为i,j的队伍中更强的一支。...2.有一个很大很大的输入流,大到没有存储器可以将其存储下来, 而且只输入一次,如何从这个输入流中随机取得m个记录。 3.大量的URL字符串,如何从中去除重复的,优化时间空间复杂度 39....a[i]、b[i]分别保存从前到i的最大的数和从后到i的最小的数, 一个解答:这需要两次遍历,然后再遍历一次原数组, 将所有data[i]>=a[i-1]&&data[i]b[i]的data[i]找出即可...给出这个解答后,面试官有要求只能用一个辅助数组,且要求少遍历一次。 94.微软笔试题 求随机数构成的数组中找到长度大于=3的最长的等差数列9 d- x' W) w9 ?"

    3.3K90

    数据结构(5):数组

    以二维数组为例,按行优先存储的基本思想是:先行后列,先存储行号较小的元素,行号相等先存储列号较小的元素。设二维数组行下标与列下标的范围分别为[0,h₁]与[0,h₂],则存储结构关系式为 ?...例如,一个矩阵的阶为 100×100,该矩阵中只有少于 100 个非零元素。 若采用常规的办法存储稀疏矩阵,则相当浪费存储空间,因此仅存储非零元素。...稀疏矩阵压缩存储后便失去了随机存取特性。 稀疏矩阵的三元组即可以采用数组存储,也可以采用十字链表法存储。 ? 数组的应用 ?...这样以来,我们使用一个与 matrix 大小相同的辅助数组 matrix_new,临时存储旋转后的结果,我们遍历 matrix 中的每一个元素,根据上述规则将该元素存放到 matrix_new 中对应的位置...在遍历完成之后,再将 matrix_new 中的结果复制到原数组中即可。

    96410

    算法和编程面试题精选TOP50!(附代码+解题思路+答案)

    相信大家在掌握了这些内容后,一定可以提升实力、信心大增。 数组 数组,将元素存储到内存的连续位置中,是最基本的数据结构。...解决数组相关问题的关键是要熟悉数组的数据结构和基本的构造,如循环、递归等等;下面给出了 10 道热门面试题帮助大家掌握知识并进行练习。 ▌1.给定一个 1-100 的整数数组,请找到其中缺少的数字。...▌3.如何在未排序的整数数组中找到最大值与最小值?...而与数组不同的是,链表不是将元素存储在连续的位置中,而是可以存储在任意位置,彼此之间通过节点相互连接。 链表也可以说就是一个节点列表,每个节点中包含存储的值和下一个节点的地址。...本文相关阅读推荐: 毕业十年后,我忍不住出了一份程序员的高考试卷 一道腾讯面试题:厉害了我的杯 十大经典排序算法动画与解析,看我就够了!

    4.6K30

    挑战NumPy100关,全部搞定你就NumPy大师了 | 附答案

    创建一个3x3矩阵,其值范围为0到8 (★☆☆) 从[1,2,0,0,4,0]中查找出所有非零元素 (★☆☆) 创建一个 3 * 3单位矩阵 (★☆☆) 使用随机值创建一个 $333$ 数组(★☆...☆) 使用随机值创建一个10x10数组,并找出其最小值和最大值 (★☆☆) 创建一个大小为30的随机向量并找到平均值 (★☆☆) 创建一个2维数组,边框元素都为1,内部元素都为0 ; 如下图所示...如何在向量中找到最接近的值(给定标量)?(★★☆) 51. 创建一个表示位置(x,y)和颜色(r,g,b)的结构化数组(★★☆) 52....设有一个(100,2)的随机向量, 每组值代表一个坐标, 求点与点之间的距离 (★★☆) 53. 如何就地将float(32位)数组转换为整型(32位)数组? 54. 如何读取以下文件??...什么东西与numpy数组的枚举等价?(★★☆) 56. 生成一个通用的二维高斯型数组 (★★☆) 57. 如何将p个元素随机放置在二维数组中 (★★☆) 58.

    4.9K30

    关于System.arraycopy方法的使用

    : 如果是复制一个一位数组,那么改变复制后的数组并不影响原数组。...但是如果复制一个二维数组,那么改变其中任何一个数组,那么另一个的值也发生了变化。开始不是很明白,后来上网查了查资料,理解了其中奥妙。...如果是一维数组,那么元素都是基础类型(如int,double等),使用arraycopy()方法后,是把原数组的值传给了新数组,属于值传递。...而这时改变其中任何一个数组的元素的值,其实都修改了“那些数组”的元素的值,所以原数组和新数组的元素值都一样了。...本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

    31830

    JAVA入门1 原

    4、 处理数组中数据 我们可以对赋值后的数组进行操作和处理,如获取并输出数组中元素的值 ? 在 Java 中还提供了另外一种直接创建数组的方式,它将声明数组、分配空间和赋值合并完成,如 ?...答案:B 6.2循环操作 Java 中的数组: 实际开发中我们经常使用循环控制数组成员的操作。如: ? 运行结果: ?...问: 如何区分调用的是哪个重载方法呢? 答: 当调用被重载的方法时, Java 会根据参数的个数和类型来判断应该调用哪个重载方法,参数完全匹配的方法将被执行。如: ? 运行结果: ?...,并生成 100 以内随机数为数组中的每个元素赋值,然后输出数组 要求: 1、 要求通过定义带参带返回值的方法来实现 2、 通过参数传入数组的长度(例如长度为 8),方法执行后返回赋值后的数组 3、 通过...(nums)); } /* * 功能:创建指定长度的int型数组,并生成100以内随机数为数组中的每个元素赋值 * 定义一个带参带返回值的方法,通过参数传入数组的长度,返回赋值后的数组

    2.6K20

    百度 阿里 华为 腾讯 谷歌面试笔试题及解析

    例如数组{3, 4, 5, 1, 2}为{1, 2, 3, 4, 5}的一个旋转,该数组的最小值为1)       8、找出两个单链表里交叉的第一个元素       9、字符串移动(字符串为*号和26...9月7日,一道华为上机题: 题目描述: 选秀节目打分,分为专家评委和大众评委,score[] 数组里面存储每个评委打的分数,judge_type[] 里存储与 score[] 数组对应的评委类别,judge_type...点评:答案是,问其中一个人:另一个人会说你的路口是通往正确的道路么? 9月19日,创新工厂笔试题: 给定一整型数组,若数组中某个下标值大的元素值小于某个下标值比它小的元素值,称这是一个反序。...「原题是希望设计O(1)的算法(预处理O(n)不可少,要算出每台机器的比例),因为非O(1)的话,就trivial了:可以产生随机数例如[0,1)然后,根据负载比例,2分或者直接循环检查落入哪个区间,决定机器...2.每个城市的IP段是固定的,新来一个IP,找出它是哪个城市的,设计一个后台系统。 10月9日,YY笔试题: 1 输出一个字符串中没有重复的字符。如“baaca”输出“bac”。

    3.4K30

    100 个常见的 PHP 面试题

    3) PHP与哪些编程语言相似? PHP语法类似于Perl和C。 5) 实际使用的PHP是哪个版本? 推荐使用版本7。 6) 如何从命令行执行PHP脚本?...file_get_contents() 可读取文件并将其存储到字符串变量中。 28) 如何使用 PHP 脚本 连接 MySQL 数据库?...41) 在将数据存储到数据库之前如何转义数据? addslashes 函数使我们能够在将数据存储到数据库之前对其进行转义。 42) 如何从字符串中删除转义字符?...81) 数组运算符 ‘===’ 是什么意思? a === b 如果 a 和 b 具有相同顺序和相同类型的键/值对,则为 TRUE 。 82) a != b 和 a !== b有什么区别? !...当PHP更改时,您可以通过以下方式更新Memcached 主动清除缓存: 进行插入或更新时清除缓存 重置缓存: 与第一种方法类似,但不仅仅是删除键并等待下一个数据刷新缓存的请求,而是在插入或更新后重置值

    21K50
    领券