- 主题:这种组合算法怎么写?
对。这个思路好。以前学过彻底忘记了。。
【 在 fyg 的大作中提到: 】
: 用库的话更简单,想自己写的话用递归也直观, 只需要想清楚C(m,n) = C(m-1,n) + C(m-1,n-1),就可以写递归函数了
: python:
: def all_combine(str):
: ...................
--
FROM 58.37.127.*
请问这句话啥意思
if ((i & (1 << j)) != 0) {
combination.add(array.get(j));
}
这个逻辑背后的理论是啥?
【 在 iwannabe 的大作中提到: 】
: 用二进制的方法,
: public static ArrayList<ArrayList<Integer>> generateCombinations(Array
: List <Integer> array) {
: ...................
--
FROM 58.37.127.*
这个太精妙了。。。这是人写出来的吗
【 在 lambo 的大作中提到: 】
: [Java版]
: static List<String> fullCombination(String[] elems) {
: List<String> fullElements = new ArrayList<>();
: ...................
--
FROM 58.37.127.*
你这个是错的啊
输出{a,b,c,d}
【 在 scy 的大作中提到: 】
: import java.util.ArrayList;
: import java.util.List;
: public class CombinationGenerator {
: ...................
--
FROM 58.37.127.*
chatgpt的结果靠谱吗???
这玩意儿根本编译不过。。。。
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: Index 4 out of bounds for length 4
at Solution/test.dp4.lambda$3(dp4.java:35)
at java.base/java.util.stream.IntPipeline$1$1.accept(IntPipeline.java:180)
at java.base/java.util.stream.Streams$RangeIntSpliterator.forEachRemaining(Streams.java:104)
at java.base/java.util.Spliterator$OfInt.forEachRemaining(Spliterator.java:711)
at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)
at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:921)
at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
at java.base/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:682)
at Solution/test.dp4.lambda$2(dp4.java:35)
at java.base/java.util.stream.IntPipeline$1$1.accept(IntPipeline.java:180)
at java.base/java.util.stream.Streams$RangeIntSpliterator.forEachRemaining(Streams.java:108)
at java.base/java.util.Spliterator$OfInt.forEachRemaining(Spliterator.java:711)
at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)
at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:921)
at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
at java.base/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:682)
at Solution/test.dp4.combinations(dp4.java:36)
at Solution/test.dp4.main(dp4.java:26)
【 在 grayCat 的大作中提到: 】
: kimi这么说的:
: 在Java中,要生成对象的全组合,你可以使用`Stream` API配合`Collectors`来实现。Java标准库本身并没有直接提供组合库,但是你可以使用已有的库如Apache Commons Math或者Google Guava等来帮助生成组合。
: 以下是使用Java 8及以上版本Stream API实现的示例:
: ...................
--
修改:iStudy FROM 58.37.127.*
FROM 58.37.127.*
我擦 ,你懂不懂算法,最讨厌的就是加各种莫名其妙的flag一样的东西。。很难看懂啊
要写一大堆注释的
【 在 caravan 的大作中提到: 】
: 这是最基本的递归调用,应该属于简单算法级别
--
FROM 58.37.127.*
调试不出来,感觉要大改
【 在 grayCat 的大作中提到: 】
: 调试下 哈哈
: 砌墙买砖回来还得自己抹一层灰呢。
--
FROM 58.37.127.*
i>>j&1 啥意思?
【 在 zms 的大作中提到: 】
: char[] cs = "abcd".toCharArray();
: int max = (int) Math.pow(2, cs.length);
: StringBuilder buffer = new StringBuilder();
: ...................
--
FROM 58.37.127.*
不如我的,他这个几年后就记不得了。。。
他写的太刁钻。。。,后面还有个利用了程序员特性的,更牛逼。。。反正我不学,因为记不住。
写程序就是搬砖啊,能吃苦就行
【 在 hollyczy 的大作中提到: 】
: 你还是好好看看人家的答案,看懂先,写程序又不是搬砖,能吃苦就行
--
FROM 58.37.127.*