小编Ada*_*old的帖子

最大单卖利润算法的最优解

输入数组是:

A[0] = 23171 
A[1] = 21015 
A[2] = 21123
A[3] = 21366 
A[4] = 21013 
A[5] = 21367
Run Code Online (Sandbox Code Playgroud)

使命是找到最大的利润.例如A [3] - A [2] = 243,我的代码是:

class Solution {
    int profit = 0;
    public int solution(int[] A) {
         for (int i = 0;i < A.length; i++){
            for (int j = i + 1; j < A.length; j++){
                if(A[j] - A[i] > profit)
                    profit = A[j] - A[i];
            }
         }
         return profit;
   }
}
Run Code Online (Sandbox Code Playgroud)

结果假设是365,但它会在更大的输入上爆炸.该代码的时间复杂度为O(N 2),但可能与O(N)有关.我无法真正看到如何避免在这里筑巢......任何正确方向的指针都会受到赞赏.

java algorithm nested-loops

3
推荐指数
2
解决办法
943
查看次数

为什么我需要在转换为byte之前将Float转换为float?

Float f = new Float(10.71);    
byte b = (byte)f;
Run Code Online (Sandbox Code Playgroud)

我明白了

Cannot cast from Float to byte
Run Code Online (Sandbox Code Playgroud)

为什么我要这样做?

byte b = (byte)(float)f;
Run Code Online (Sandbox Code Playgroud)

java casting

3
推荐指数
1
解决办法
965
查看次数

如何合并(覆盖)两个 xml 文档?

假设我有一个这样的A文档:

<document>
    <element>
        <value>1</value>
        <wom>bat</wom>
    </element>
    <bar>
        <baz />
        <baz />
        <baz />
    </bar>
</document>
Run Code Online (Sandbox Code Playgroud)

和这样的B文档:

<document>
    <element>
        <value>2</value>
    </element>
    <bar>

    </bar>
</document>
Run Code Online (Sandbox Code Playgroud)

结果如下所示:

<document>
    <element>
        <value>2</value>
        <wom>bat</wom>
    </element>
    <bar>

    </bar>
</document>
Run Code Online (Sandbox Code Playgroud)

因此,我想要实现的目标是用文档Belement提供的值覆盖文档A中标记(如 )中的值,但保持同级值不变。然而,如果B中的标签为空(叶),我希望A中的对应标签也被清空。我已经检查过这个问题,但它是合并而不是覆盖。我怎么解决这个问题?

澄清: AB文档具有相同的结构,但B 的元素较少。我必须清空A中B中为空的每个元素,并且如果元素不为空,我必须覆盖该元素中的每个内部元素(请参阅我的示例)。

xml xslt saxon xslt-2.0

3
推荐指数
1
解决办法
1035
查看次数

有没有办法只使用HTML5和CSS创建这样的多级列表?

我想仅使用HTML5CSS创建这样的列表:

1 First
  1.1 Indent 1
  1.2 Indent 2
2 Second
  2.1 Indent 1
  2.2 Indent 2
    2.2.1 More depth
Run Code Online (Sandbox Code Playgroud)

我已经检查了有序列表上的多个教程,但似乎<ol>标签没有这样做的选项.是否可以使用HTML5CSS

css html5

3
推荐指数
1
解决办法
740
查看次数

Java 比较复杂对象,不包括 JUnit 的某些字段

我尝试了 Unitils 工具,它真的很棒,但没有为您提供排除字段的选项。这样做的唯一方法是将对象设置为 null 并启用标志“IGNORE_DEFAULTS”,但在我的情况下它没有帮助,因为我有一些由系统自动生成的 ID。因此,如果我可以将 id 添加到排除列表中,那就太完美了。

我也尝试过 Mockito ReflectionEquals 但没有帮助,因为我需要一个字段到字段的比较。

还有其他有用的东西吗?我正在寻找数小时但没有成功。

先感谢您!

java comparison junit object

3
推荐指数
2
解决办法
5665
查看次数

泛型类<?扩展数字>解释

public void foo(Class<? extends Number> value) {
    // compilation error
    processNumber(value);
}

public void processNumber(Number num) {
    // do something about this number.
}
Run Code Online (Sandbox Code Playgroud)

我想从Number(Integer,Double ..etc)的任何子类型调用"foo".任何人都可以向我解释我该怎么办?

foo(new Integer(5)); // compilation error 
Run Code Online (Sandbox Code Playgroud)

java generics

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

为什么我应该在多线程程序中"最终"共享变量

我的问题是为什么我应该使用final来装饰变量,列表?它由匿名内部类的实例使用而不是final,它不会编译.

代码如下所示:

public class TwoThreadsOneListCurrModi
{
  public static void main(String[] args)
  {    
     final List<String> list = Collections.synchronizedList(new ArrayList<String>());

    for (int i =0 ; i<20;i++)
      list.add(String.valueOf(i));
    Thread t1 = new Thread(new Runnable(){

      @Override
      public void run()
      {
          synchronize(list) {
          System.out.println("size of list:" +list.size());
          }
      }
    });

    t1.start();  
  }
}
Run Code Online (Sandbox Code Playgroud)

但是,如果我使用普通课,那很好.

public class TwoThreadsOneListCurrModi2

{
  public static void main(String[] args)
  {    
     final List<String> list = Collections.synchronizedList(new ArrayList<String>());
    initialize list;

    Thread t1 = new WorkThread(list);
    Thread t2 = new WorkThread(list);    
    t1.start();  
    t2.start();
  } …
Run Code Online (Sandbox Code Playgroud)

java concurrency

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

在构造函数中使用Override注释被认为是一种好的做法吗?

我已经读到使用@Override注释带来了许多好处,并且共识是你应该在每个被覆盖的方法上使用它.

@Override在构造函数中使用注释也被视为一种好的做法吗?

java constructor annotations

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

如果我创建任意数量的String对象,JVM是否会耗尽PermGen空间?

假设我编写了一个程序,它创建了很多String对象和intern()它们:

String someString = param1 + param2;
someString.intern();
Run Code Online (Sandbox Code Playgroud)

这对于一小组字符串来说很好,但是如果我尝试创建十亿个字符串String呢?(或者说亿亿亿?)据我所知,JVM 在PermGen区域为s 维护一个常量池,而PermGen没有得到GC -ed.String

因此,如果我String在循环中创建了过多的对象,但是我删除了对它们的引用,那么它们将得到GC -ed(我将用尽PermGen空间)吗?这些String都是独一无二的,没有任何重复.

java memory string jvm permgen

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

如何判断我的Spring启动应用程序是否处于调试模式?

我想根据--debug交换机是否存在来修改我的应用程序的工作方式.我在我的@Configuration文件中试过这个:

@Value("\${debug}")
lateinit var debug: String
Run Code Online (Sandbox Code Playgroud)

但是春天说

无法在值"$ {debug}"中解析占位符'debug'

如何查询--debug选项的状态?

java spring kotlin spring-boot

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