gpt4 book ai didi

java - PriorityQueue 和三元运算符

转载 作者:行者123 更新时间:2023-12-02 10:58:34 27 4
gpt4 key购买 nike

在method_one中:

  1. PriorityQueue<Integer> bigger = lower.size() > higher.size() ? lower : higher;
  2. PriorityQueue<Integer> smaller = lower.size() > higher.size() ? higher : lower;

在method_two中:

  • PriorityQueue<Integer> bigger = lower.size() > higher.size() ? lower : higher;
  • PriorityQueue<Integer> smaller = lower.size() < higher.size() ? lower : higher;
  • 这里lower是 Max_heap 优先级队列,并且 higher是Min_heap优先级队列。

    第 2 行和第 4 行相同,但得到错误的答案。在第 4 行使用第 2 行时得到正确答案。为什么会出现这种奇怪的行为,即使它们是相同的?

    最佳答案

    2行:

    if lower.size() == higher.size()然后选择较低

    4行:

    if lower.size() == higher.size()然后选择更高

    这就是区别。如果在使用较高优先级队列或较低优先级队列时出现问题,您会得到不同的答案。

    来自@Andreas有问题的评论此行添加:

    > 的倒数是 <= ,不是<

    关于java - PriorityQueue 和三元运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51525514/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com