小编unk*_*cba的帖子

我怎样才能避免内循环

如何避免内部循环并仅使用流功能编写此“分配”? 编辑:我想要一个链接在一起的所有唯一对的列表,存储在l2. 示例:输入:String[] l = { "a", "a", "b", "c", "d", "d", "d", "d", "a", "a", "b", "b", "c", "d" };,输出:[a, a, b, c, d, d, b, b, c, d]。

String[] l = { "a", "a", "b", "c", "d", "d", "d", "d", "a", "a" };
String[] l2 = 
        IntStream.iterate(0, i -> i < l.length, i -> i + 2)
        .mapToObj(i -> Objects.hash(l[i], l[i + 1]))
        .distinct()
        .map(h -> {
            for (int j = …
Run Code Online (Sandbox Code Playgroud)

java java-stream

4
推荐指数
1
解决办法
77
查看次数

这个片段有 O(log^2(n)) 复杂度吗?

如果不是,女巫复杂性会是什么?谢谢:

    public static int f(int n, int x) {
        for (int i = n; i > 0; i /= 2) {
            for (int j = 0; j < i; j++) {
                x += j; // Assume, this operation costs 1.
            }
        }
        return x;
    }
Run Code Online (Sandbox Code Playgroud)

java complexity-theory big-o function

2
推荐指数
1
解决办法
135
查看次数

Java:使用流对字符串进行数字求和

示例: 输入:abc565xyz 输出:16 哪种变体更好?谢谢。

public static int sumOfDigits(String s) {
    return s.chars().filter(Character::isDigit).reduce(0, (i0, i1) -> i0 + Character.digit(i1, 10));
}

public static int sumOfDigits(String s) {
    return s.chars().filter(Character::isDigit).mapToObj(a -> a - '0').reduce(0, (a, b) -> a + b);
}

public static int sumOfDigits(String s) {
    return s.chars().filter(Character::isDigit).mapToObj(a -> Character.digit(a, 10)).reduce(0, Integer::sum);
}
Run Code Online (Sandbox Code Playgroud)

java character java-stream

-1
推荐指数
1
解决办法
495
查看次数