在一次采访中被问及这个问题,没有比生成所有可能的子集更好的答案了。例子:
a = [4,2,5,7] k = 8
output = 4
[2],[4,2],[2,5],[4,2,5]
采访者试图暗示对数组进行排序应该会有所帮助,但我仍然无法找到比暴力更好的解决方案。非常感谢您的意见。
l
处的元素x
,对数组进行二进制搜索以获取数组中最大整数的索引,即
这应该适用于复杂度为0(N*log(N))
的情况,足以回答面试问题。
对于给定的示例,排序数组=[2,4,5,7]
。
2
,l=0
和r=2
。Count=2^(2-0) = 4
(涵盖[2],[4,2],[2,5],[4,2,5]
4
,l=1
和r=0
。Count=0
,我们打破了迭代。采访者暗示,对数组进行排序会有帮助,而且确实有帮助。我会尽力解释的。
获取您声明的数组和k
值:
a = [4,2,5,7]
k = 8
对数组进行排序将产生:
a_sort = [2,4,5,7]
现在我们可以考虑以下过程:
>
集合ii=0,jj=1
选择a_sort[ii]
作为子集的一部分
2.1.如果<代码>2*a_sort[ii]
将a_排序[ii jj]添加到子集
3.1. Ifa_排序[ii]a_排序[ii jj]
3.1.1. 子集[a_sort[ii]、a_sort[ii jj]
持有条件,是解的一部分,以及由任何额外数量的元素组成的任何子集,其中a_sort[kk]
3.1.2。设置jj=1
并返回步骤3。
3.2. 否则,设置ii=1,
jj=ii 1,返回步骤2
根据您的输入,此过程应返回:
[[2], [2,4],[2,5],[2,4,5]]
# [2,7] results in 9 > 8 and therefore you move to [4]
# Note that for [4] subset you get 8 = 8 which is not smaller than 8, we are done
如果你有一个子集[a\u sort[ii]],它不包含2*a\u sort[ii]
如果您只是想得到可能的子集,这比生成子集本身更容易。
假设对于
ii
看看上面的例子:
[2]增加1个计数
- [2,4]添加1个计数(
1=0 1
) - [2,5]添加2个计数(
2=0 2
--
总数为4
给定一组元素,如何在此列表的所有子集中找到MAX和MIN之间的差异。 例如: 集合=1 2 3
我尝试使用jitsi meet在raspberry上进行视频会议。首先,我使用https://meet.jit.si/创建一个房间并从我的raspberry pi 3板连接到该房间。我有一个picam camera v1插件到pi板和一个外部usb扬声器。其次,我使用chromium浏览器从raspberry加入会议,预览视频看起来不错。在那之后,我使用chrome浏览器从我的电脑加入了那个房间,
在这个例子中,我们设置整数的最小和最大数字以及数字的小数部分。 IOTester.java import java.text.NumberFormat; import java.util.Locale; public class I18NTester { public static void main(String[] args) { Locale enLocale = new
问题内容: 我想找到一组整数的子集。这是具有回溯功能的“子集总和”算法的第一步。我已经编写了以下代码,但是没有返回正确的答案: 例如,如果我要计算set = {1,3,5}的子集,则我的方法的结果是: 我希望它产生: 我认为问题出在零件list.removeAll(list);中。但我不知道如何纠正它。 问题答案: 你想要的就是Powerset。这是一个简单的实现: 我将为你提供一个示例,说明该算
我有一个这样的数据框 我想把这些数据子集,得到美国、中国和印度这些年的国内生产总值。另一个问题是,假设我每年有200个国家的国内生产总值数据,而我只对50个国家感兴趣。如何子集数据?非常感谢!
如果输入的len()少于10个字符,则调用子函数“tester”的默认值“太短”。 我下面的代码在一定程度上有效。我需要帮助,这样用户可以一次又一次地输入,直到他们键入'quit',在该命令终止时,终端中没有给出任何输出。传接球不起作用,我不知道该在哪里Rest。 我尝试了一段时间,真的,有回报,但我不能再跟随了。