小编use*_*298的帖子

在python中不使用“+”运算符的两个整数的总和

需要一些帮助来理解 leetcode 371 的 Python 解决方案。“两个整数的总和”。我发现https://discuss.leetcode.com/topic/49900/python-solution/2是投票最多的 python 解决方案,但我在理解它时遇到了问题。

  • 如何理解“% MASK”的用法以及为什么“MASK = 0x100000000”?
  • 如何理解“~((a % MIN_INT) ^ MAX_INT)”?
  • 当 sum 超过 MAX_INT 时,函数会大喊负值(例如 getSum(2147483647,2) = -2147483647),这不是不正确吗?

class Solution(object):

    def getSum(self, a, b):
        """
        :type a: int
        :type b: int
        :rtype: int
        """
        MAX_INT = 0x7FFFFFFF
        MIN_INT = 0x80000000
        MASK = 0x100000000
        while b:
            a, b = (a ^ b) % MASK, ((a & b) << 1) % MASK
        return a if a <= MAX_INT else ~((a % MIN_INT) ^ …
Run Code Online (Sandbox Code Playgroud)

python

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

scala - 为什么map.size在地图不为空时返回0

我是斯卡拉的新手.以下示例我对发生的事情感到有些困惑.我创建了一个可变映射,然后将三个键/值推送到地图.我可以通过键检索队列的值,但"web.keys"表示地图为空,"web.size"返回0!为什么会这样,我该如何检索正确的地图大小?

scala> import scala.collection.mutable.{Map, Set, Queue, ArrayBuffer}

scala> val web = Map[Int, Queue[Long]]().withDefaultValue(Queue()) 
web: scala.collection.mutable.Map[Int,scala.collection.mutable.Queue[Long]] = Map()

scala> web(123).enqueue(567L)

scala> web(123).enqueue(1L)

scala> web(123).enqueue(2L)

scala> web(123)
res96: scala.collection.mutable.Queue[Long] = Queue(567, 1, 2)

scala> web
res97: scala.collection.mutable.Map[Int,scala.collection.mutable.Queue[Long]] = Map()

scala> web.size
res98: Int = 0

scala> web.keys
res99: Iterable[Int] = Set()
Run Code Online (Sandbox Code Playgroud)

一个简单的地图工作正常.

scala> val w= Map[Int,Int]()
w: scala.collection.mutable.Map[Int,Int] = Map()

scala> w(1)=1

scala> w
res10: scala.collection.mutable.Map[Int,Int] = Map(1 -> 1)

scala> w(2)=2

scala> w
res12: scala.collection.mutable.Map[Int,Int] = Map(2 -> 2, 1 -> …
Run Code Online (Sandbox Code Playgroud)

scala scala-collections

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

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

Java“this”用法

我是 Java 新手。我正在阅读玩具代码,并注意到所有其他方法期望“启动”和“停止”方法都是静态的。由于这个“stop”只能通过“.this.stop()”(“here”行)调用。这样的实现有什么好处,为什么不让“start”和“stop”也成为静态方法呢?

public class MyService {
    private MyService() {
        Runtime.getRuntime().addShutdownHook(new Thread() {
            @Override
            public void run() {
                try {
                    MyService.this.stop();                    <----- here
                } catch (IOException | InterruptedException e) {
                    ...
                }
            }
        });
    }

    protected void stop() {
     ....
    }

    protected void start() {
     ....
    }

    public static xxx getXXX() {
        return xxx;
    }
    ....
}
Run Code Online (Sandbox Code Playgroud)

java

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

Scala-创建一个可变映射,如果键不存在,则默认值为(0,0)

我是scala的新手。作为标题,我想创建一个可变映射Map[Int,(Int, Int)],如果键不存在,则默认值为元组(0,0)。在python中,“ defaultdict”使这种工作变得容易。在Scala中做到这一点的优雅方法是什么?

scala

0
推荐指数
1
解决办法
512
查看次数

标签 统计

scala ×2

amazon-redshift ×1

java ×1

python ×1

scala-collections ×1

sql ×1