我有一个数字数组,现在我想找到所有可能的子集和,并得到其中的顶部z
元素。
例子:
Input : arr[] = {2, 4, 5}, z = 3
SubsetSums : 0 2 4 5 6 7 9 11
output : Top z=3 elements = 11,9,7
这是我的代码:
static List<Long> subsetSums(int arr[], int n)
{
// There are total 2^n subsets
int total = 1 << n;
List<Long> list = new ArrayList<>();
// Consider all numbers from 0 to 2^n - 1
for (int i = 0; i < total; i++) {
int sum = 0;
// Consider binary representation of
// current i to decide which elements
// to pick.
for (int j = 0; j < n; j++)
if ((i & (1 << j)) != 0)
sum += arr[j];
// Print sum of picked elements.
System.out.print(sum + " ");
list.add(sum);
}
list.sort((a,b) -> b.compareTo(a));
List<Long> response = new ArrayList<>();
for(int i=0; i<k && i<list.size(); i++) {
response.add(list.get(i));
}
return response;
}
我从[this][1]帖子中获取了部分代码。
这个程序的时间复杂度是O(n*2^2)
我在一次Hackerrank考试中使用过这个,但在15个测试用例中,只有7个通过了测试,其余的都超时了,因为输入大小n
可能非常大。
如何以较低的时间复杂度解决这个问题?[1]: https://www.geeksforgeeks.org/print-sums-subsets-given-set/
有没有一种算法可以高效地找到这个中心?理想情况下,性能只取决于及其周围环境,而不取决于整个图。 我考虑过从中的所有顶点同时开始广度优先搜索,当所有遇到一个顶点时停止搜索,但这并不是太高效。在这种情况下可能是可行的,但感觉可能有更好的方法。
这是一个算法问题。如果我错过了Python中任何有帮助的现有函数,请大喊一声。 给定一组元素的,我们可以在Python中使用函数来找到所有唯一的k元素子集。让我们调用包含所有这些子集的集合。请注意,每个这样的子集都有不同的元素。 问题是两步走。首先,给定这些k-不同元素子集,我想组合(其中的一些),这样(组合只是一些子集的超集): > 构图中任意两个子集之间的交集为空 构图中所有子集的并集给出的正
我试图从html代码中获取子元素(卡号),其中html标记和类名相同。下面是html代码片段 下面是我尝试的标识符。但都返回了第一个卡号 "************4305”。 尝试了其他选项:这也返回了第一个卡号“************4305”。
返回页面顶部的操作按钮 基础用法 滑动页面即可看到右下方的按钮。 demo <template> Scroll down to see the bottom-right button. <el-backtop target=".page-component__scroll .el-scrollbar__wrap"></el-backtop> </template> 自定义显示内容 显示区
Backtop 回到顶部 返回页面顶部的操作按钮 基础用法 滑动页面即可看到右下方的按钮。 demo <template> Scroll down to see the bottom-right button. <el-backtop target=".page-component__scroll .el-scrollbar__wrap"></el-backtop> </template>
平滑滚动到页面顶部。 使用 document.documentElement.scrollTop 或 document.body.scrollTop 获取到顶部距离。从顶部滚动一小部分距离。使用window.requestAnimationFrame() 来实现滚动动画。 const scrollToTop = () => { const c = document.documentElemen