值循环的最小排序

2024-02-26

给定如下序列:

1,2,1,2,1,1,1,2,1,2,1,3,1,2,1,2,1,3

什么是高效的获得最小订购量的方法:

1,1,1,2,1,2,1,3,1,2,1,2,1,3,1,2,1,2

暴力方法是显而易见的,所以请不要推荐它——除非提供令人信服的证据证明暴力方法是唯一的方法!

更多详情

我有一个生成数字列表的算法。该算法的输出是一个列表/数组,但逻辑上数字代表一个循环,其中只有元素的相对顺序很重要。为了存储这些循环以供以后比较,我想以这样的方式存储它们:存储的一维数字列表代表循环中元素的最小顺序。图片会最有帮助:

该循环描述了围绕 T tetromino 的路径,其中 1 是向前移动,2 是右转,3 是左转。无论您从哪里开始,甚至朝哪个方向走,遵循这 18 步的顺序都会让您获得 T 四格骨牌。产生此循环的算法的输出将返回具有任意起点和方向的元素。所以返回的数组可能是:

任意初始排序:

1,2,1,2,1,1,1,2,1,2,1,3,1,2,1,2,1,3

不过,有一个最低订购量。它可以从两个不同的电路获得,反映了 T 四联骨牌是对称的事实:

最小订购量:

1,1,1,2,1,2,1,3,1,2,1,2,1,3,1,2,1,2

暴力破解

显而易见的蛮力方法是构建所有可能的排序并取最小值。我的问题是是否有更聪明、更有效的方法来做到这一点。


这是一个经过充分研究的问题,称为字典顺序最小字符串旋转 http://en.wikipedia.org/wiki/Lexicographically_minimal_string_rotation.

更好的算法都在 O(n) 时间内运行,而朴素算法的运行时间为 O(n*n)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

值循环的最小排序 的相关文章

  • 按偶数和奇数排序

    我想知道是否可以使用 std sort 函数按偶数或奇数对数字进行排序 我有以下代码 但我不确定如何在 std sort 中实现 inline bool isEven const Point n return n getX 2 0 它是否正
  • 将字符串中的“奇怪”字符转换为罗马字符

    我需要能够将用户输入仅转换为 a z 罗马字符 不区分大小写 所以 我感兴趣的角色只有26个 然而 用户可以输入他们想要的任何 形式 的字符 西班牙语 n 法语 e 和德语 u 都可以包含用户输入中的重音符号 这些重音符号会被程序删除 我已
  • 数组中连续元素的最大乘积

    我在现场面试的时候被问到了这个算法问题 由于没有要求我签署保密协议 我将其发布在这里寻求答案 给定一个数组REAL不包含 0 的数字 找到产生最大乘积的连续元素 该算法应在线性时间内运行 我考虑过以下方法 使用两个数组 第一个是利用DP思想
  • 如何按某些属性对对象列表进行排序

    我有简单的课 public class ActiveAlarm public long timeStarted public long timeEnded private String name private String descrip
  • 包围一组点的多边形

    我有一组 S 点 2D 由 x 和 y 定义 我想找到 P 包围该组所有点的最小 含义 具有最少数量的点 多边形 P 是S 有没有已知的算法来计算这个 我在这个领域缺乏文化令人惊讶 感谢您的帮助 对于这个问题有很多算法 它被称为 最小边界框
  • 7 张牌扑克手牌评估器

    有谁知道评估 7 张牌扑克牌的快速算法吗 这比简单地暴力检查 7 张牌中每 21 个 5 张牌的组合更有效 Cheers Pete 我写了一篇JavaScript 核心评估方法仅使用位操作 因此速度非常快 考虑到这一点 查看 21 种组合还
  • 如何使用 JQuery DataTables 根据每个单元格中值的子字符串对列进行排序

    假设我有一列包含格式为 P 的对象标识符 例如 P12 3767 我使用的是 1 9 1 版本的 JQuery数据表插件 http datatables net用于排序和分页 有没有办法可以忽略单元格值的前 4 个字符 P12 部分 以便我
  • 异或交换可以扩展到两个以上的变量吗?

    我一直在尝试将异或交换扩展到两个以上的变量 例如n变量 但我没有得到比这更好的地方3 n 1 对于两个整型变量x1 and x2你可以像这样交换它们 swap x1 x2 x1 x1 x2 x2 x1 x2 x1 x1 x2 所以 假设你有
  • 直接选择排序与交换选择排序

    有什么区别直接选择排序 vs 交换选择排序 今天我陷入了一场争论 我的教授在他的讲义中使用了这两个术语 维基百科和任何教科书或网站都会为您提供的选择排序就是他所说的 交换选择排序 我以前从未听说过 交换选择排序 这个术语 仅 选择排序 并且
  • Silverlight 中的图形可视化

    我有一个表示有向图的数据结构 我正在寻找一个好的 Silverlight 可视化 以允许我从一个节点导航到另一个节点 最好带有一些漂亮的动画 有谁知道这种显示有什么好的 UI 控件或框架吗 甚至是来自另一个领域的样本 也许是社交网络 我的图
  • 具有多个谓词的 C++11 算法

    功能如std find if来自algorithmheader 确实很有用 但对我来说 一个严重的限制是我只能为每次调用使用 1 个谓词count if 例如给定一个像这样的容器std vector我想同时应用相同的迭代find if 多个
  • 以下 PLINQ 代码没有改进

    我没有看到使用以下代码的处理速度有任何改进 IEnumerable
  • Collections.sort(list) 和 list.sort(Comparator) 之间的区别

    有什么理由让我应该选择Collections sort list 方法而不是简单地调用list sort 内部Collections sort只是调用sort的方法List无论如何 上课 令人惊讶的是几乎每个人都告诉我使用Collectio
  • 子序列和

    给定一个整数数组 例如 1 2 3 1 查找是否存在总和为0并返回它 例如 1 2 3 or 2 3 1 检查每个子序列是O n 2 这效率太低了 有改进的想法吗 创建一个新数组 其中每个元素等于前一个元素加上该元素的总和 Input 1
  • 计算数组中的唯一元素而不排序

    在 JavaScript 中 以下代码将查找数组中的元素数量 假设数组中至少有一个元素 arr jam beef cream jam arr sort var count 1 var results for var i 0 i lt arr
  • 如何从迭代器推导连续内存

    不知何故 本土stl copy VC Dinkumware 上的算法表明它可以使用memcpy 可以轻松复制的数据 一个凡人能做到这一点吗 假设每个元素都是普通可复制的 random access iterator 是否意味着连续内存 标准
  • 归并排序中递归树的高度log(n)+1是怎么来的

    我按照 stackoveflow 的建议阅读了一些问题和答案 我正在遵循 cormen 的 算法简介 一书进行自学 那本书里已经解释得很清楚了 但唯一没有解释的是如何在合并排序分析中计算树的高度 如果在后面的章节中对此进行解释的话 我仍然在
  • 在鼠标光标位置添加 cytoscape 节点

    我想在画布上的单击事件上的鼠标箭头位置添加一个 cytoscape 节点 我怎样才能做到这一点 我的方法 效果不太好 我可以通过单击创建一个节点 但无法确保创建的节点的位置位于我单击的位置 使用这样的东西 cy click function
  • 举例解释bpe(字节对编码)?

    有人可以帮忙解释一下背后的基本概念吗BPE模型 除了这张纸 https arxiv org abs 1508 07909 目前还没有那么多解释 到目前为止我所知道的是 它通过将罕见和未知的单词编码为子词单元序列来实现开放词汇表上的 NMT
  • 如何在不声明新数据的情况下更改类型(String,Int)元组的 Ord 实例?

    我正在尝试对类型列表进行排序 String Int 默认情况下 它按字符串排序 然后按整数排序 如果字符串相等 我希望它是相反的 首先比较整数 然后如果相等则比较字符串 另外 我不想切换到 Int String 我找到了一种通过定义实例来实

随机推荐

  • React-router URL 在刷新或手动写入时不起作用

    我正在使用 React router 当我单击链接按钮时它工作正常 但是当我刷新网页时它不会加载我想要的内容 例如 我在localhost joblist一切都很好 因为我按链接到达这里 但if我刷新我得到的网页 Cannot GET jo
  • Node.js - 启动进程(firebase 模拟器)并读取其输出

    我想在 Jest 测试之前启动 firebase 模拟器 执行此操作 但以编程方式执行 E my projct gt firebase emulators start only firestore i emulators Starting
  • 字符串中的动态 t-sql 引号

    我在存储过程中有以下内容 DECLARE new column name varchar 9 DECLARE table name varchar 16 DECLARE SQLString nvarchar 2000 SET new col
  • 如何使用 Play 2.0 定义标签?

    关于 Play 2 0 模板引擎的文档并不多 如何使用 Scala 模板创建标签 play 2 0 中的模板引擎直接来自 play 1 0 scala 模块 如果您仍然想知道像 Scala 这样的函数式语言能带来什么好处 那么这肯定是它的亮
  • Ruby 正则表达式:即使没有 m 修饰符,^ 也匹配行首?

    红宝石 1 8 7 我使用带有 的正则表达式来匹配字符串开头的模式 问题是 如果在开始处找到该模式any line在字符串中它仍然匹配 如果我使用 m 修饰符 这是我期望的行为 但我没有 irb irb main 001 0 gt str
  • 多个按顺序的 HTTP POST

    我有一个正在开发的应用程序 我需要按顺序执行 3 个 HTTP POST 实现这一点的最佳方法是什么 我是不是该 使每个 HTTP Post 都有自己的异步类 并以菊花链方式连接异步类 即从第一个异步的 onPostExecute 调用第二
  • 空指针测试性能

    C 中测试引用类型变量是否为空指针的性能如何 like if x null 与测试小于零的整数甚至布尔值是否为假相比 是否还有其他关于此类的问题空指针测试 例如是产生的垃圾 我对游戏的每一帧进行了数百次这样的测试 我想知道这些测试是否会导致
  • 如何在没有 $this 的情况下处理类变量?

    我正在制作一个带有 OOP 概念的 WordPress 插件 但我面临一些有线问题 首先我有一个main plugin php文件 我有这样的课程 include once plugin dir path FILE something ph
  • 如何无异常地检查文件是否存在?

    如何在不使用try https docs python org 3 6 reference compound stmts html try陈述 如果您检查的原因是这样您可以执行类似的操作if file exists open it 使用更安
  • pandas 按大写字母排序

    运行这段代码 df pd DataFrame ADc Abc AEc columns Test index 0 1 2 df sort columns Test axis 0 ascending False inplace True 返回排
  • C++开源项目推荐[关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • ActionBar 中操作/菜单项的动态控制

    有没有办法动态禁用 隐藏 添加 删除 ActionBar 中的菜单项 例如 在用户在活动中填写有效的电话号码之前 操作将被禁用 我在 ActionBar API 中没有找到任何有用的方法 唯一的方法似乎是在 ActionBar 中使用自定义
  • 如何使用imagick的writeImage()函数?

    如果我将脚本保存在与正在操作的图像相同的目录中 则此方法有效 并且结果图像 foo jpg 也在同一位置生成 但是 如果脚本位于一个位置 而我希望使用的图像位于另一个位置 而我希望保存缩略图的位置位于其他位置 那么如何指定这些路径呢 做这样
  • 使用 Jekyll 插件在 _site 内生成文件

    我编写了一个 Jekyll 插件 Tags 它生成一个文件并返回该文件的链接字符串 一切都很好 但如果我将该文件直接写入 site 文件夹 它就会被删除 如果我将该文件放在 site 文件夹之外 则它不会在 site 内生成 我应该在哪里以
  • 为什么 KineticJS 文档中没有draw()方法?

    我花了几个小时在谷歌上搜索 Kinetic Layer draw 方法 我发现的只是用例 没有关于如何 何时以及为何使用它的文档 也许它已经被弃用了 这些是我在学习和使用这个精彩框架时使用的主要链接 http kineticjs com d
  • 无法使 Laravel 4 的 Validator 类在框架外工作

    我正在尝试在框架之外使用 Laravel 4 Eloquent 因为 Illuminate Database 包已通过 Composer 独立可用 Eloquent 本身运行良好 但我在尝试实现验证规则时遇到了阻碍 我首先尝试使用一些预构建
  • 如何处理 Cordova 或 Phonegap 上 android 4.0-4.3 和 4.4 之间的宽度不一致?

    我正在 Cordova 3 4 上做一个应用程序 并在使用 Android 4 4 2 的 Moto X 使用 Android 2 3 的 Samsung Galaxy Ace 和模拟器上进行测试 我保留 cli 创建的原始视口 在CSS上
  • jQuery UI 对话框如何禁用后台输入的焦点?

    当您使用 jQuery UI 打开模式对话框时 您会注意到 如果使用 Tab 键 则可以将焦点放在对话框的按钮上 但对话框外部的任何输入都会被忽略 我正在尝试实现同样的行为jQuery UI 工具叠加 http jquerytools or
  • 具有绝对位置的嵌套 Touchable

    我需要实现一个界面 其中一个对象是可单击的 但该对象的一个 区域执行另一个操作 如下所示 gt clicking on this small area does an action gt clicking on this area does
  • 值循环的最小排序

    给定如下序列 1 2 1 2 1 1 1 2 1 2 1 3 1 2 1 2 1 3 什么是高效的获得最小订购量的方法 1 1 1 2 1 2 1 3 1 2 1 2 1 3 1 2 1 2 暴力方法是显而易见的 所以请不要推荐它 除非提供