您有已排序整数的k
列表。从每个k
列表中找到至少包含一个数字的最小范围。
例如,
List 1: [4, 10, 13, 14]
List 2: [0, 9, 15, 18]
List 3: [5, 18, 22, 30]
这里最小的范围是[14,18]
,因为它包含列表1
中的14
、列表2
中的15
和列表3
中的18
。
我的做法是:
但我面临的唯一问题是:假设一个列表中没有剩下的元素,我应该完成还是应该继续?
非常好的O(n log n)算法!
您可以在这里完成,因为您永远也找不到满足给定条件的更好的区间“从k个列表中的每个列表中至少包含一个数字的范围”。
假设您要保留当前最小值m
(某个列表中的最后一个元素),而要从另一个列表中删除某个元素(不是最小值)。在这种情况下,范围只能增长(因为范围的最小值由m
确定)。所以这样做是没有意义的,你可以停止你的算法。
我在Groovy中使用正则表达式。 我试图用以下规则来公式化正则表达式。 必须正好是17个字符 必须只包含字母和数字 必须包含至少1个alpha和1个数字字符 不能包含字母'I'、'O'或'Q'(大写或小写) 用下面的表达,我想我就快到了。下面的正则表达式似乎满足了要求1、2和3。 我曾尝试添加要求4,但没有成功。谁能帮我一下吗? 谢谢
问题内容: 我有一个字符串列表。我想为每个字符串分配一个唯一的数字(确切的数字并不重要),并依次使用这些数字创建一个长度相同的列表。以下是我的最佳尝试,但由于以下两个原因,我不满意: 假定相同的值彼此相邻 我必须以开头列表,否则输出将不正确 我的代码: 我想使代码更通用,因此可以使用未知列表。有任何想法吗? 问题答案: 无需使用外部库(检查 EDIT 以获取解决方案),您可以按照以下步骤进行操作:
这个问题是在谷歌编程采访中提出的。我想到了两种方法: > 找出长度的所有子序列。这样做时,计算两个元素的和,并检查它是否等于k。如果是,请打印“是”,否则继续搜索。这是一种暴力手段。 按非降序排列数组。然后从数组的右端开始遍历数组。假设我们有一个排序数组,{3,5,7,10},我们希望总和是17。我们将从元素10开始,索引=3,让我们用“j”来表示索引。然后包含当前元素并计算所需的_sum=sum
问题内容: 我有一个字典列表,并且想为该列表的每个元素添加一个键。我试过了: 但是update方法返回None,所以我的结果列表中没有None。 返回语法错误。 问题答案: 您无需担心要构建新的词典列表,因为对更新后的词典的引用与对旧词典的引用相同:
问题内容: 在此代码构造中: 是否可以要求至少包含一个这样的条目,以便在编译时检查?(当然,在运行时,我只能检查numbers.length。) 显然,我可以这样做: 但这不会很优雅。 我这样做的原因是要确保子类不会根本不忘记调用此构造函数,默认情况下,该构造函数将调用列表中没有数字的。在这种情况下,我想获得熟悉的错误消息:。 是否可以有另一种方法来实现相同的目标,例如将此构造函数标记为非隐式的@
我在下一件事上遇到了麻烦:我有一个arraylist中有数字,我想反转列表中的数字,比如,如果它有1 2 3,将arraylist中的值替换为3 2 1。为此,我创建了一个名为reordenar()的方法;它将第一个arraylist中的最后一个数字放在第二个arraylist中的第一个位置。完成后,我不知道如何让第一个arraylist用第二个arraylist替换它的数字。这是我写的代码。 那