小编kil*_*ras的帖子

置换数组中的行以消除不断增加的子序列

以下问题取自算法问题(问题653):

你被给予了2个数字矩阵.找到一个O(n log n)算法,该算法置换数组中的行,使得数组中的任何一列都不包含比⌈√n更长的子序列(可能不包含连续的数组元素).

我不知道如何解决这个问题.我认为它可能会使用某种分而治之的复发,但我似乎无法找到它.

有没有人有任何想法如何解决这个问题?

algorithm dynamic-programming greedy divide-and-conquer

6
推荐指数
1
解决办法
371
查看次数

Range.Find.Execute在单词2013中失败

请考虑Word 2013中的下表

A BBB
A CCC
D E F
Run Code Online (Sandbox Code Playgroud)

A,B和C是合并的单元格.

A和B是空的.C A里面有文字.

现在以下代码

Set rng = ActiveDocument.Range(0, 0)  
With rng.Find
    .Forward = True
    .Wrap = wdFindStop
    .Execute "A"
End With
Run Code Online (Sandbox Code Playgroud)

崩溃了Execute "A".

如果我改变文本Execute "B"它没有找到任何东西,但没有崩溃的话.问题仅出现在2013年.

我们尝试Selection.Find逐个手动搜索,但这两个都很慢.

有没有快速的方法来规避这个错误?

编辑:这是我构建的最小失败示例.在我们的应用程序中,我们使用了很多Range.Find,有时使用wrap,几乎从不从Document.Start开始

EDIT2:进一步调查显示,如果以兼容模式(Word 97-2003格式)打开Document,则不存在错误.

vba ms-word word-vba word-2013

5
推荐指数
1
解决办法
2049
查看次数