小编dha*_*ram的帖子

河内的解决方案比O(2 ^ n)更好?

是否有河内塔楼的解决方案,其运行时间小于O(2 n),其中n是要移动的磁盘数量?我的解决方案需要O(2 n)时间.

此外,下面的解决方案是递归.我们可以使用动态编程和memoization的概念在较短的时间内解决这个问题吗?

public void towersOfHanoi(
        int num, 
        MyStack<Integer> from,
        MyStack<Integer> to, 
        MyStack<Integer> spare
) {
    if (num == 1) {
        int i = from.pop();
        to.push(i);
        System.out.println("Move "+i+" from "+from.getName()+" to " + to.getName());
        return;
    }
    towersOfHanoi(num - 1, from, spare, to);
    towersOfHanoi(1, from, to, spare);
    towersOfHanoi(num - 1, spare, to, from);
}
Run Code Online (Sandbox Code Playgroud)

MyStackStackJava中的类的扩展版本,它添加了一个name字段和访问器.

此外,同一问题有任何变化吗?

java algorithm towers-of-hanoi

7
推荐指数
3
解决办法
4653
查看次数

在最短的时间内找到素数列表

我读了很多算法来找到素数,结论是如果数不能被前面的任何素数整除,那么数就是素数.

我无法找到更准确的定义.基于此,我编写了一个代码并且它表现令人满意,直到我传递的最大数量为1000000.但我相信有更快的算法来找到比给定数字更小的所有素数.

以下是我的代码,我可以有更好的版本吗?

 public static void main(String[] args) {
    for (int i = 2; i < 100000; i++) {
        if (checkMod(i)) {
            primes.add(i);
        }
    }
}

private static boolean checkMod( int num) {
    for (int i : primes){
        if( num % i == 0){
            return false;
        }
    }
    return true;
}
Run Code Online (Sandbox Code Playgroud)

algorithm primes

7
推荐指数
1
解决办法
1万
查看次数

术语O(1)的含义,不使用多余的空间

这让我有些困惑。当约束如下时,解决给定问题的方法应该是什么:

1)不使用多余的空间:例如:如果我想对给定的数组进行排序,则几乎没有办法。冒泡排序,它不断交换(只是循环,没有递归)。我相信这是不使用额外空间的。如果我使用递归对元素进行排序,那会是什么情况。是否与“不使用额外空间”相同,或者所使用的堆栈计入算法的空间复杂度?

2)在O(1)空间中:O(1)空间是什么意思?这是否意味着恒定的空间。现在,如果它是恒定空间,那么请对以下情况进行评论:

a)如果我在第三个变量的帮助下交换冒泡排序。这不是一个额外的空间,并且它不取决于输入的大小,因此它处于恒定的空间。

b)此外,如果我对自然数应用计数排序,而实际上并不需要与总数成比例的空间量,我们是否认为它在常数空间O(1)中。

如果有差异,请说明。谢谢

algorithm performance space-complexity

5
推荐指数
1
解决办法
1万
查看次数

找到表格中的最小距离

我有一张尺寸为m*n的表,如下所示

2    6    9    13
1    4    12   21
10   14   16   -1
Run Code Online (Sandbox Code Playgroud)

关于这个表的几个限制:

  1. 每行中的元素按递增顺序排序(自然排序).
  2. A -1表示该单元对于计算目的没有意义,即那里不存在元素.
  3. -1之后的行中不会出现任何元素.
  4. 所有单元格可以具有介于0和N之间的正数或-1.
  5. 没有两个单元具有相同的正数,即-1可以多次出现,但没有其他数字可以.

问题:我想从表中找到一组n个数字,其中集合必须只包含每行中的一个数字,并且max(S) - min(S)尽可能小.

例如,上表给出了S = 12,13,14.

如果能解决这个问题我真的很感激.我的解决方案很复杂,需要花费 O(m^n)太多.我想要一个最佳解决方案.

algorithm minimum

5
推荐指数
1
解决办法
230
查看次数

在Windows服务器上安装Chef Solo

我是Chef和cloud的新手.我必须在Windows Server 2008上安装chef.我在这里阅读文档:http: //wiki.opscode.com/display/chef/Installing+Chef+Client+on+Windows

但很少有步骤对我来说不清楚.

我有一个非常简单的设置,它的厨师独奏,所以我只有一个Windows服务器,我试图安装它,并练习写一些食谱.

这个你能帮我吗.上面链接中我不清楚的步骤是:步骤名称:复制验证密钥我不明白它正在讨论哪个validation.pem.

感谢您提前的帮助..

chef-infra

5
推荐指数
1
解决办法
1万
查看次数

未能读取候选组件类

我正在编写一个 GWT 项目,并且能够运行它。当我单独集成 Spring 时,它可以工作,但后来我尝试集成 Hibernate,这把事情搞砸了。我收到以下错误。

我尝试通过 Spring 的源代码进行调试,但不幸的是我没有看到它从哪里抛出异常。

org.springframework.beans.factory.BeanDefinitionStoreException: Failed to read    
candidate component class: file [C:\ws\TicTacToe\war\WEB-INF\classes\com\tic\server\dao\entity\UserEntity.class]; nested exception is 
java.lang.ArrayIndexOutOfBoundsException: 165: java.lang.ArrayIndexOutOfBoundsException: 165
Run Code Online (Sandbox Code Playgroud)

我相信这没有多大意义。这是完整的错误跟踪:

WARNING: Nested in org.springframework.beans.factory.BeanDefinitionStoreException:    
Failed to read candidate component class: file [C:\all-development-tools\all-
eclipse\eclipse-kepler\ws\TicTacToe\war\WEB-
INF\classes\com\tic\server\dao\entity\UserEntity.class]; nested exception is  
java.lang.ArrayIndexOutOfBoundsException: 165:
java.lang.ArrayIndexOutOfBoundsException: 165
at org.springframework.asm.ClassReader.readLabel(Unknown Source)
at org.springframework.asm.ClassReader.a(Unknown Source)
at org.springframework.asm.ClassReader.accept(Unknown Source)
at org.springframework.asm.ClassReader.accept(Unknown Source)
at org.springframework.core.type.classreading.SimpleMetadataReader.<init>(SimpleMetadataReader.java:64)
at org.springframework.core.type.classreading.SimpleMetadataReaderFactory.getMetadataReader(SimpleMetadataReaderFactory.java:80)
at org.springframework.core.type.classreading.CachingMetadataReaderFactory.getMetadataReader(CachingMetadataReaderFactory.java:102)
at org.springframework.context.annotation.ClassPathScanningCandidateComponentProvider.findCandidateComponents(ClassPathScanningCandidateComponentProvider.java:257)
at org.springframework.context.annotation.ClassPathBeanDefinitionScanner.doScan(ClassPathBeanDefinitionScanner.java:242)
at org.springframework.context.annotation.ComponentScanAnnotationParser.parse(ComponentScanAnnotationParser.java:123)
at org.springframework.context.annotation.ConfigurationClassParser.doProcessConfigurationClass(ConfigurationClassParser.java:219)
at org.springframework.context.annotation.ConfigurationClassParser.processConfigurationClass(ConfigurationClassParser.java:154)
at org.springframework.context.annotation.ConfigurationClassParser.parse(ConfigurationClassParser.java:140)
at org.springframework.context.annotation.ConfigurationClassPostProcessor.processConfigBeanDefinitions(ConfigurationClassPostProcessor.java:282)
at …
Run Code Online (Sandbox Code Playgroud)

gwt spring hibernate

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

困惑于Java内存管理(堆栈和堆)

这可能听起来很愚蠢,但我仍然不清楚Java Stack和内存堆.我从学习中得知的是:

1)所有方法调用都在堆栈上进行.

2)本地分配的所有内存都在内存堆上(关于这一点不是很清楚)

3)新运算符(在方法或类中)分配的所有内存都在内存堆上.

我担心以下情况:

1)如果我在方法中创建一个int变量并返回它,它会去哪里(我相信它会进入堆栈,但需要澄清).

2)如果我在方法中创建一个新对象,即使在方法执行结束后它仍然存在于堆内存中(我明白这是因为当我将这个对象分配给某些对象时,由java创建的对象的哈希码保持不变外部引用变量或我返回此对象).

3)我的问题是如果我没有将第2点中提到的对象分配给任何引用或者我没有返回它,会发生什么.它仍然是在堆上创建的吗?逻辑上它应该但请赐教.

java callstack memory-management

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

按负数移位

我对这里的表达很困惑.我是一名Java程序员,但我并不精通位操作.

我想我理解正确如下:

Input : 1 << 10
Output: 0000000000000000000010000000000
Run Code Online (Sandbox Code Playgroud)

对于正数,我认为你是1乘10位.

混淆是我有以下情况:

int val = -10 (binary representation : 1111111111111111111111111110110 )
Input : 1 << val
Output: 0000000010000000000000000000000 
Run Code Online (Sandbox Code Playgroud)

如果有人可以通过负数向我解释左移或右移的含义,那将是非常好的.

java bit-manipulation bit-shift bit

4
推荐指数
2
解决办法
620
查看次数

IDP 的 Spring SAML 预身份验证检查

我正在编写几个基于 spring 安全和 spring 安全 saml 扩展 (RC2) 的 Web 应用程序。

我以基本方式(基于 spring saml 文档中定义的示例)单点登录与多个服务提供商和身份提供商合作。

当用户访问 SP 上的受保护资源时,他将被转发到 IDP 上的受保护资源。所以因为用户还没有登录,他们被重定向到一个登录页面(标准的 spring 安全内容)。登录后,播放原始请求并完成 authNRequest/Response 并将用户重定向到原始安全资源。

我现在有一个要求,确保所有服务提供者必须在每次请求之前询问身份提供者用户是否登录(而不是在 SP 本地进行)。

我的理解是在每个请求期间存储和查询本地 (SP) 和远程 (IDP) 安全上下文,如果没有有效上下文,则用户将被转发到身份提供者以完成身份验证过程。

所以我的问题是,有没有办法可以在 SP 端配置 saml/spring 安全性以始终“ping”或要求 IDP 检查当前用户是否已登录,或者这种事情是否不必要/不受支持。

提前致谢

java spring spring-security saml spring-saml

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

多个log4j.properties文件

这似乎不是一个有效的问题,但我在这里有一个要求.以下是我的项目结构:

common (built as a jar)
module-1 (war, includes common.jar in its classpath)
module-2 (war, includes common.jar in its classpath)
module-3 (war, includes common.jar in its classpath)
module-4 (war, includes common.jar in its classpath)
Run Code Online (Sandbox Code Playgroud)

部署如下:

module-1和module-2位于一个服务器上,module-3位于另一个服务器上,而module-4位于另一个服务器上.

要求是有两个单独的日志文件(每个服务器一个).因此,实现此目的的方法是将log4j.properties(绝对具有不同的名称)放在公共模块中,并将所需的属性文件复制到相应服务器的conf文件夹中.

我不确定,如果我可以使用不同名称的日志属性文件,如果可能的话,请帮我指点这样做.

编辑为了使这更容易,如果你有人可以告诉我,如果我可以使用不同的名称的log4j.properties文件以及如何将其加载到服务器,我将能够实现其余的.

谢谢.

java log4j

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