小编dha*_*ram的帖子

访谈:合并两个排序的单一链接列表

这是在面试的书面测试期间提出的编程问题."你有两个已经排序的单链表,你必须合并它们并返回新列表的头部而不创建任何新的额外节点.返回的列表也应该排序"

方法签名是:Node MergeLists(Node list1,Node list2);

节点类如下:

class Node{
    int data;
    Node next;
}
Run Code Online (Sandbox Code Playgroud)

我尝试了很多解决方案,但没有创建一个额外的节点螺丝.请帮忙.

以下是随附的博客文章http://techieme.in/merging-two-sorted-singly-linked-list/

algorithm singly-linked-list

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

查找二叉树是否为二叉搜索树

今天我接受采访时,我被要求编写一个程序,该程序采用二叉树,如果它也是二进制搜索树则返回true,否则为false.

我的方法1:执行有序遍历并将元素存储在O(n)时间内.现在扫描数组/元素列表并检查 i 索引处的元素是否大于(i + 1)索引处的元素.如果遇到这种情况,则返回false并退出循环.(这需要O(n)时间).最后回归真实.

但这位先生希望我提供一个有效的解决方案.我尝试但是我没有成功,因为要查找它是否是BST我必须检查每个节点.

而且他指着我思考递归.我的方法2:如果对于任何节点N N>左<N和N>右> N,并且N的左节点的有序后继小于N并且有序后继,则BT是BST N的右节点大于N,左右子树是BST.

但这会很复杂,而且运行时间似乎并不好.如果您知道任何最佳解决方案,请帮忙.

algorithm binary-tree binary-search-tree

33
推荐指数
2
解决办法
6万
查看次数

动态更改注释驱动的Spring MVC中的@ResponseStatus

我真的不确定使用Spring 3.2 MVC是否可行.

我的控制器有一个声明如下的方法:

@RequestMapping(method = RequestMethod.GET)
@ResponseStatus(HttpStatus.OK)
public @ResponseBody List<Foo> getAll(){
    return service.getAll();
}
Run Code Online (Sandbox Code Playgroud)

问题:

  1. 是什么意思@ResponseStatus(HttpStatus.OK)
  2. 它是否表示该方法将始终返回HttpStatus.OK状态代码.
  3. 如果从服务层抛出异常怎么办?
  4. 我可以在发生任何异常时更改响应状态吗?
  5. 如何根据同一方法中的条件处理多个响应状态?

spring-mvc spring-annotations

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

在Spring中需要多个相同类型的bean

在将其标记为重复之前的请求.我已经通过论坛,无法在任何地方找到问题的解决方案.

我正在使用Spring 3.2编写代码,一切都是纯粹基于注释的.代码接收从不同XSD文件派生的XML文件.

所以我们可以说,有五种不同的XSD(A1,A2,A3,A4,A5),我的代码接收任何类型的XML,我有逻辑来识别到达时的XML类型.

现在,我试图使用Spring OXM解组这些.但由于涉及多个XSD,我们实际上无法使用一个Un-marshaller.所以我们需要大约五个.

Configuration课堂上,我添加了五个bean,如下所示:

@Bean(name="A1Unmarshaller")
public Jaxb2Marshaller A1Unmarshaller(){
    Jaxb2Marshaller unMarshaller = new Jaxb2Marshaller();
    unMarshaller.setContextPath("package name for the classes generate by XSD A1");
}

@Bean(name="A2Unmarshaller")
public Jaxb2Marshaller A1Unmarshaller(){
    Jaxb2Marshaller unMarshaller = new Jaxb2Marshaller();
    unMarshaller.setContextPath("package name for the classes generate by XSD A2");
}

@Bean(name="A3Unmarshaller")
public Jaxb2Marshaller A3Unmarshaller(){
    Jaxb2Marshaller unMarshaller = new Jaxb2Marshaller();
    unMarshaller.setContextPath("package name for the classes generate by XSD A3");
}

@Bean(name="A4Unmarshaller")
public Jaxb2Marshaller A4Unmarshaller(){
    Jaxb2Marshaller unMarshaller = new Jaxb2Marshaller();
    unMarshaller.setContextPath("package name for the classes …
Run Code Online (Sandbox Code Playgroud)

java xml spring xsd spring-mvc

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

在Intellij中添加Tomcat服务器

关于这个网站有很多问题,请放心,我已经检查了它们,但没有找到我的答案.

我真的是IntelliJ的新手.这是我的编辑配置截图.请帮我在这个IDE中添加tomcat服务器,我知道如何在Eclipse中完成它,但Intellij给了我很多时间.

在此输入图像描述

tomcat intellij-idea

21
推荐指数
2
解决办法
6万
查看次数

递归算法的空间复杂度

我在接受采访时被问及解决问题检查pallindrome的有效方法.

现在我可以做两件事:

  1. 从i = 0开始到i = n/2并且将第i个和第n个字符比较为相等.
  2. 我可以使用递归来检查第一个和最后一个是否相同,并且字符串的其余部分是pallindrome.

第二个是递归的.我的问题是算法的递归和非递归版本的空间复杂度有什么不同?

space-complexity

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

为什么Integer.MIN_VALUE的绝对值等于Integer.MIN_VALUE

在java中,当我说Integer i = Math.abs(Integer.MIN_VALUE).我得到与答案相同的值,这意味着i包含Integer.MIN_VALUE.我也在C++中验证了相同的内容.

为什么会这样?

java integer

10
推荐指数
2
解决办法
3032
查看次数

用于排列数字列表的Java代码

我编写了一个程序来查找给定项目列表的所有可能的排列.这恰恰意味着我的程序打印r = 0到n的所有可能的P(n,r)值

以下是代码:

package com.algorithm;

import java.util.ArrayList;
import java.util.Calendar;
import java.util.Collection;
import java.util.HashSet;
import java.util.List;
import java.util.Set;

public class Permutations<T> {
    public static void main(String args[]) {
        Permutations<Integer> obj = new Permutations<Integer>();
        Collection<Integer> input = new ArrayList<Integer>();
        input.add(1);
        input.add(2);
        input.add(3);

        Collection<List<Integer>> output = obj.permute(input);
        int k = 0;
        Set<List<Integer>> pnr = null;
        for (int i = 0; i <= input.size(); i++) {
            pnr = new HashSet<List<Integer>>();
            for(List<Integer> integers : output){
            pnr.add(integers.subList(i, integers.size()));
            }
            k = input.size()- i;
            System.out.println("P("+input.size()+","+k+") :"+ …
Run Code Online (Sandbox Code Playgroud)

java algorithm optimization permutation

8
推荐指数
3
解决办法
3万
查看次数

Java G1GC 从不收集 Old Gen

我正在运行我的万无一失的测试,它让我进入了 GC 开销限制。然而,在分析内存统计数据和快照后,我意识到几乎 800 MB 的内存被浪费在字符串复制中。

进一步研究 VM 参数和其他运行时参数,我意识到使用的 GC 是 PS(Parallel Scavenger - JVM 的默认GC)。

我修改了 Surefire argLine 来使用

-XX:+UseG1GC -XX:+UseStringDeduplication -XX:+PrintStringDeduplicationStatistics
Run Code Online (Sandbox Code Playgroud)

现在我的测试运行使用的是 G1GC。

下面是切换GC前后的对比

在此输入图像描述

如果您对重复数据删除统计数据感兴趣。这里是: 在此输入图像描述

我的问题:为什么 G1GC 使用了如此多的 Old Gen,并且在测试运行期间没有被收集。它不断增长。

其余的环境和争论以及其他一切都保持不变。唯一改变的是 GC 算法和重复数据删除。

我也一直在查看这些相关主题

JVM G1GC 的混合 gc 没有收集太多旧区域

Java 8 的字符串去重特性

https://openjdk.java.net/jeps/192

java garbage-collection g1gc

8
推荐指数
1
解决办法
4563
查看次数

Spring Boot 和 AWS RDS 只读副本

在这里,我试图在 AWS RDS 中实现以下目标。我有一个正在运行的 MySQL 数据库实例。我正在考虑创建只读副本,以便拥有一些额外的负载共享功能。

我有一个在 EC2 上运行的 Spring Boot 应用程序。目前我连接到数据库的方式是在 application.yml 中添加以下属性:

datasource:
    type: com.zaxxer.hikari.HikariDataSource
    url: jdbc:mysql://DB_HOSTNAME:3306/DB_DATABASE?useUnicode=true&characterEncoding=utf8&useSSL=false&useLegacyDatetimeCode=false&serverTimezone=UTC
    username: DB_USERNAME
    password: DB_PASSWORD
Run Code Online (Sandbox Code Playgroud)

我的问题是:

  • 如果我创建只读副本,是否需要编写一些特殊代码来连接到它?
  • 我是否需要多个连接池,每个数据库实例一个连接池?
  • 从代码角度来看,这是如何可扩展的,如果我有 5 个只读副本,我如何在代码中管理它?
  • 如何将数据库调用定向到不同的副本?这个决定的依据是什么?

如果有任何链接/视频/文档,您可以指出我。Spring Boot 不是必需的,我需要了解什么是从 Java 应用程序利用只读副本的好方法。

谢谢

amazon-web-services amazon-rds spring-data-jpa spring-boot read-replication

8
推荐指数
1
解决办法
6512
查看次数