- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我想知道一种算法(有效地)解决以下问题:数字 [1..9] 的二维矩阵需要从顶部 (1) 到底部 (9) 在水平线上对齐,但只能通过翻转用另一个数字垂直或水平。
示例输入矩阵:
1 8 2 6 1 6
9 2 5 1 6 2
3 6 9 2 9 8
5 1 7 4 2 8
4 2 7 6 9 5
期望的输出矩阵:
1 1 1 1 2 2
2 2 2 2 3 4
4 5 5 5 6 6
6 6 6 7 7 8
8 8 9 9 9 9
关于“翻转”的说明:以输入矩阵为例。左上角有一个“1”。那个 1 可以水平翻转它旁边的 8(第一行现在变成 8 1 2 6 1 6
)或者垂直翻转它下面的 9(第一列现在变成 9 1 3 5 4
)。它不能与 2 对角翻转。
这个问题有什么解决方案(任何语言都可以)?
最佳答案
不错的拼图!无论如何,您可以尝试修改版本的排序算法。我不太擅长实现,但我可以稍后再给你一个。解决这个问题的另一种方法是通过 A* 算法。这是人工智能中使用的一种路径搜索算法,但我已经看到它适用于与此类似的问题。
关于算法 : Rearrange 2D Matrix (through element 'flipping' ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1344499/
有 M,一个 n x n 矩阵,每个元素等于 0 或 1。 mij表示第 i 行和第 j 列中的条目。对角线条目是其中之一对某些 i 形成 mii。交换矩阵 M 的第 i 行和第 j 行表示以下操作:
支持numpy和torch 1.einops.rearrange 重新指定维度 2.einops.repeat 重排和重复(增加)维度 3.einops.reduce 1.einops.rearran
我有一个来自 SQL Server 的结果集,如下所示: Zone M1 M2 M3 M4 M5 M6 M7 NORTH 6233 17743
众所周知,Java 语言允许编译器重新排列已编译代码的行,只要重新排序对代码语义没有影响。然而,编译器只需要关心从当前线程中看到的语义。如果这种重新排序在多线程情况下影响语义,通常会导致并发问题(内存
我的数组对象如下例所示。 [ {'email':'test@gmail.com', 'name':'abc'}, {'email':'test1@gmail.com', 'name':'bbc'}
这是我目前的代码。请注意“percentageOff”和“originalPrices”是其中包含 float /整数的列表。 print("Percent off:", percentageOff[
我想知道一种算法(有效地)解决以下问题:数字 [1..9] 的二维矩阵需要从顶部 (1) 到底部 (9) 在水平线上对齐,但只能通过翻转用另一个数字垂直或水平。 示例输入矩阵: 1 8 2 6 1 6
我使用 ComponentFactoryResolver 动态创建组件 shown in the docs . // create a component each time this code is
已结束。此问题正在寻求书籍、工具、软件库等的推荐。它不满足Stack Overflow guidelines 。目前不接受答案。 我们不允许提出寻求书籍、工具、软件库等推荐的问题。您可以编辑问题,以便
我对 Awesome 和 Lua 完全陌生,但我想实现的是在同一窗口布局中循环浏览我的窗口的不同排列。也许我没有使用正确的搜索词,但是一个简单的谷歌搜索没有产生任何有用的东西,我不想花时间研究 Lua
根据与x i 的绝对差值重新排列数组元素。即,具有最小差异的元素首先出现,依此类推。就像我正在服用array [10, 5, 3, 9, 2, 3] 和 x = 7 那么每个元素的绝对差应该是 = 7
我对如何在移动设备上重新排列面板有疑问。面板有不同的尺寸。页面大屏截图(col-lg)请见附件: 编辑:大屏幕布局没问题,因为我不希望行之间有任何空格,因为面板的高度不同。 当我在移动设备 (col-
基本上可以有一个或多个带有面板的控件,并且可以在它们之间拖动面板,或者在控件内滑动以更改位置、最小化或关闭。 如果缩小得太小,蓝色区域可以有滚动条。 这个有名字吗?有没有我可以尝试的 Java swi
首先,为 ggplot 指定分类变量顺序的方法是在 data.frame 中对其级别重新排序。其次,要在任何绘图上突出显示一个区域,我们可以使用 geom_rect。这里需要注意的是,不要将数据传递给
有谁知道默认或自定义 Sublime 命令会重新排列 Sublime Text 2 中选项卡的位置以避免用鼠标拖放选项卡。 例如: 在 sublime 窗口的最后一个选项卡上,命令: 键 + 键 +
一些上下文: 想写一个算法来接受来自客户端的票。根据某些约束对它们进行排序、处理它们,然后将结果回复给客户端。 我做了一些研究,虽然 Python 的 REST API 是个好主意。但当我探索它时,我
有谁知道默认或自定义 Sublime 命令会重新排列 Sublime Text 2 中选项卡的位置以避免用鼠标拖放选项卡。 例如: 在 sublime 窗口的最后一个选项卡上,命令: 键 + 键 +
一些上下文: 想写一个算法来接受来自客户端的票。根据某些约束对它们进行排序、处理它们,然后将结果回复给客户端。 我做了一些研究,虽然 Python 的 REST API 是个好主意。但当我探索它时,我
我有一个 table ,侧面有一个小按钮,它会自动移动到用户鼠标所在的任何行。当鼠标移动时,按钮的包含范围(以及其中的所有元素)将使用 insertBefore() 函数移动。然而,该按钮有一个已注册
我想弄清楚如何通过鼠标拖动上下移动预填充列表框中的项目。 我已经查看了 Microsoft 的 api 中的 Control.DoDragDrop 方法,但我仍然无法让它执行任何操作。 由于我是 Vi
我是一名优秀的程序员,十分优秀!