当前位置: 首页 > 知识库问答 >
问题:

使用特殊规则将数组划分为两个数组

昌学
2023-03-14

我一直在做这个练习,突然发现了一个问题。

给定一个整数数组,确定它是否可以分成两个数组,每个数组都是递增顺序。例如,3,1,5,2,4可以,但4,8,1,5,3不能。

问题就出在这里。我不明白为什么第一个数组可以,而第二个数组不能。
有一个提示:
如果我们成功地划分了数组的初始段,其中一个部分必须包含到目前为止看到的最大元素。另一部分的最大部分尽可能小显然符合我们的最大利益。因此,给定下一个元素,如果它是至此的最大值,请将其添加到“最大包含部分”。如果没有,则别无选择,只能将其添加到其他部分(例如:如果它大于该部分的最大元素,但它不是当前最大值)。如果此过程失败,则不可能进行分区,如果成功,则我们已经演示了分区。

最重要的部分是理解这个分区的逻辑<提前谢谢你。

共有1个答案

徐高懿
2023-03-14

让我们在{3,1,5,2,4}上使用给定的算法。

第一个数字是3。我们的分区是{3},{}。

接下来是1。我们不能将它添加到{3},所以我们将它添加到另一个:{3},{1}。

接下来是5。我们将它添加到{3},以便将{1}保存为较小的数字:{3,5},{1}。

接下来是2。我们必须把它加到{1}:{3,5},{1,2}。(现在我们明白了为什么不向{1}添加5是好的。)

接下来是4:同样,我们没有选择:{3,5},{1,2,4}。

 类似资料:
  • 本文向大家介绍php数组使用规则分析,包括了php数组使用规则分析的使用技巧和注意事项,需要的朋友参考一下 本文实例分析了php中数组的使用规则。分享给大家供大家参考。具体分析如下: 数组在php中处于灰常重要的地位。字符串、图片、数码、视频等值都以数组的形式存在,所以了解清楚数组的各种规则十分必要。 1、键、值。 数组的基本形式: key=>value,其中,key只能是两种,integer、s

  • 我一直陷在这个问题中,找不到有效的解决办法。 我有N(高达1000万)说最大100个元素的数组。这些数组包含1-10000的数字。 现在我的问题是将这些数组划分为K个组,这样我就可以最小化所有数组中的重复项,即一个数组包含1,4,10,100,另一个数组包含1100。我希望他们进入同一组,因为这样可以最大限度地减少口是心非。我的问题的两个限制条件如下- > 组中向量的数量应均匀分布。 根据大小以递

  • 我应该对两个分区问题的动态规划实现应用什么修改来解决以下任务: 给你一个正整数数组作为输入,表示为C。程序应该决定是否可以将数组划分为两个相等的子序列。您可以从数组中删除一些元素,但不是全部,以使此类分区可行。 例: 假设输入是4 5 11 17 9。如果我们去掉11和17,两个分区是可能的。我问题是,我应该对我的两个分区实现进行什么调整,以确定两个分区是否可能(可能需要或可能不需要删除某些元素)

  • 该问题给出了两个输入:数组(arr)和由数组构成子数组的次数(n)。子数组的和应该是奇数 已经很清楚,如果所有的数字都是偶数。奇数和子数组是不可能的。对于奇数和,连续的2个数字应该是奇数+偶数或者偶数+奇数。但我似乎不能把它们分成N个子数组。请帮忙解释一下逻辑。

  • 问题内容: 我有这个数组: 我想根据索引是偶数还是奇数将其分为两个数组,如下所示: 提前致谢! 问题答案: 一种解决方案,使用匿名函数和: 这样就可以将数组中的项一次分离出来,但是有点“聪明”。确实没有比经典的,更冗长的更好