【问题标题】:minimum operations to make array left part equal to right part使数组左边部分等于右边部分的最小操作
【发布时间】:2021-08-08 04:18:42
【问题描述】:

给定一个偶数长度数组 [a1, a2,....,an],一个漂亮的数组是一个数组,其中 a[i] == a[i + n / 2] for 0 5 时,比 (1, 2) 和 (1, 5) 变得相同。那么解决这个问题的正确方法是什么?

【问题讨论】:

  • 到目前为止您尝试了哪些方法,您面临的问题是什么?在此处发布您的代码。
  • @user7444051 我使用了上面提到的方法,但是在某些情况下它会返回错误的结果。那我就不知道怎么解决了....

标签: arrays algorithm


【解决方案1】:

这是一个图表问题。 对于其中 a[i]!=a[i+n/2] 的每一对 (a[i], a[i+n/2]),在两个节点之间添加一条无向边。 请注意,您不应在 2 个数字之间添加多个边。 现在您基本上需要通过执行一些操作来删除图中的所有边。最后的答案是操作的数量。 在每个操作中,您删除一条边。移除两个顶点之间的边后,合并顶点并重新排列它们的边。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-01-21
    • 1970-01-01
    • 2015-12-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-19
    • 1970-01-01
    相关资源
    最近更新 更多