问题标签 [lis]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1146 浏览

java - 如何从文件中删除对象?

如何从文件中删除对象?

使用此代码,我只能从列表中删除。是否有从列表和文件中删除对象的代码?

0 投票
0 回答
1088 浏览

algorithm - O(nlogn) 中最长的非递减子序列

这可能是一个非常经典的问题,即在 O(nlogn) 中找到最长的非递减子序列。只是为了修改,数组A = {2 4 2 3 3 5 1}中最长的非递减子序列的长度是5 {2 2 3 3 5}。

然而,经过无数次努力,我无法理解我的算法实现在哪里失败。我已经阅读并实现了此处此处描述的算法,仅对“=”符号进行了一点更改,以允许最长递增子序列的 O(nlogn) 实现中的相等元素。我正在尝试这个问题,其中微不足道的 O(n^2) 方法(当解决方案被接受时是正确的)和 O(nlogn) 方法给出了不同的解决方案(我通过断言语句推断出),这证明了某些事情是错误的确定我的 O(nlogn) 实现。

我的 O(nlogn) 实现如下:

0 投票
1 回答
67 浏览

list - 执行循环时,错误是列表索引必须是整数,而不是元组

我想将所有迭代输出存储在一个矩阵中(大小为 200x200)。执行代码时:在

0 投票
3 回答
904 浏览

java - 使用 Collections 对列表进行排序会导致错误

我有一个 MatOfDMAtch 类型的对象,我转换为一个列表,我想使用 Collections 对其进行排序,如下所示,但是当我运行代码时,我收到以下错误。

请让我知道为什么我会收到这些错误以及如何解决它。

代码

错误

更新

现在我使用了比较器接口,但正如您在下面注释行的代码中看到的,我不能使用 .compareTo() 方法!如何使用它?

0 投票
1 回答
86 浏览

c++ - Cracking the Coding interview 11.7 LIS 解决方案中的分段错误

破解编码面试 - 第 V 部分问题 11.7 时出现问题,我在这里尝试实施的解决方案是他们在 Java 中转换为 C++ 的解决方案。但我面临分段错误的问题。

有人可以帮我解释为什么代码在行崩溃

arr 的大小是 6 并且 index 是 0 ,所以我猜不应该有分段错误。

0 投票
6 回答
6613 浏览

c# - 从对象列表中获取具有最大值的对象的最有效方法

我有一个名为 entry 的对象。它在浮点数中具有最小值和最大值,在字符串中具有文件名。这些对象存储在一个列表中

我需要找到一个具有最大值和最小值的对象及其文件名。

所以如果我有一个这样的数组

我想得到具有最低值的对象是 Entry1 和 Entry2,而具有最高值的对象是 Entry2 和 Entry3

我试过这个:

效果很好,但它返回一个值,没有任何其他关于它来自哪里的信息。我需要整个对象,或者至少需要这个值所在的文件名。我想知道它是否可以在一个命令中完成,或者我是否必须再次迭代列表并根据之前选择的最小值和最大值找到所有条目。

0 投票
1 回答
666 浏览

algorithm - 循环最长递增子序列

如果数字以循环方式排列,如何找到最长递增子序列的长度。例如:

LIS of 3, 2, 1 is 3 [1, 2, 3].

PS 我知道如何在 O(nlogn) 中解决线性 LIS。

问题来源:https ://www.codechef.com/problems/D2/

更新:LIS 必须通过循环一次来计算。示例 2:LIS of 1, 4, 3是 2,可以是1, 3 or1, 43, 4
谢谢

0 投票
1 回答
183 浏览

algorithm - Box Stacking (DP) 算法中一个盒子的旋转次数是 3 还是 6?

我了解 Box Stacking 问题的动态编程解决方案,它试图找到可以由一组给定的盒子形成的堆栈的最大可能长度,可以在任何方向上旋转,这样下面的盒子总是更小与堆栈中较高的盒子相比,其宽度和长度。

但是,我无法理解为什么每个盒子只需要 3 个方向。根据我的说法,方向的数量应该是 6。也就是说,对于作为高度的三个维度中的每一个,你应该有两种组合。

在线资源显示以下作为创建原始框的三个方向(2 个旋转)的方法。

因此,例如,对于框 {1,2,3},三个方向将是

但在我看来,方向应该是

我知道我额外的三个组合是由于它们之间的长度和宽度交替保持高度相同。因此,尽管我认为 1 2 3 和 1 3 2 不同,但原始算法认为它们是相同的。

但是,我觉得,在这个问题中,h,l,w 和 h,w,l 应该被视为两个独立的方向,因为一个盒子说,l=3,w=4,h=5 可以堆叠在一个盒子上方比如说,l=4,w=5 ,h=6,但不在盒子上方l=5,w=4 ,h=6

0 投票
1 回答
494 浏览

algorithm - 如何证明以下算法的正确性

问题是找到任何给定数组的 LIS(最长递增子序列)。前任。a[]={10,9,7,8,9}; 长度=3;{7,8,9}

所以在 nlogn 中做的一种方法是

  1. 对数组进行排序
  2. 取LCS的两个Resulting就是LIS。

现在我明白了该怎么做。但是我如何证明它是正确的。如何在这里申请 MI?

0 投票
1 回答
1233 浏览

java - O(n*logn) 复杂度中最长的双调子序列

如果子序列单调增加然后单调减少,或者如果它可以循环移动到单调增加然后单调减少,则子序列是双调的。

给定一个序列,如何有效地确定最长的双音子序列?

编辑:编辑标题到子序列