Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
逻辑数学难题-帮我解决这个-C++; 我有以下C++数组: int ARR [ 20 ] [ 20 ] < /代码>填充了从1到5的数字< /p>_C++_Arrays_Math_Logic_Processing Efficiency - Fatal编程技术网

逻辑数学难题-帮我解决这个-C++; 我有以下C++数组: int ARR [ 20 ] [ 20 ] < /代码>填充了从1到5的数字< /p>

逻辑数学难题-帮我解决这个-C++; 我有以下C++数组: int ARR [ 20 ] [ 20 ] < /代码>填充了从1到5的数字< /p>,c++,arrays,math,logic,processing-efficiency,C++,Arrays,Math,Logic,Processing Efficiency,特定元素,例如arr[5][8]被设置为起点 我必须找到数组中的所有元素,它们具有相同的值并且“接触”(垂直/水平)起点 我可以用三个循环在数组中搜索,但这会导致数组中出现20*20+20*2=1600个移位 我希望我把这个问题解释得足够好,让你能理解 i、 stack.imgur.com/j3e0e.jpg 应该找到所有红色标记的元素如果使用Union Find算法,几乎可以用线性时间完成。 看看这个: 我不知道你从哪里得到你的号码,但这可能相当简单。只需创建一个空[2][400]数组,并将其

特定元素,例如arr[5][8]被设置为起点

我必须找到数组中的所有元素,它们具有相同的值并且“接触”(垂直/水平)起点

我可以用三个循环在数组中搜索,但这会导致数组中出现20*20+20*2=1600个移位

我希望我把这个问题解释得足够好,让你能理解

i、 stack.imgur.com/j3e0e.jpg


应该找到所有红色标记的元素

如果使用Union Find算法,几乎可以用线性时间完成。 看看这个:

我不知道你从哪里得到你的号码,但这可能相当简单。只需创建一个空[2][400]数组,并将其与起点一起传递给函数。删除该函数中的起始点并将其添加到数组中。有4种可能的接触元素。对于每个具有该值的函数,递归调用该函数。