问题描述
leetcode四数之和
出现原因
long sum = nums[k]+nums[i]+nums[left]+nums[right]
中
这整个式子的和是3000000000,超过了int
型最大值,出现溢出
下面的式子,把nums[k]
转为long
型,这样求和操作中,后面的数字也会自动转为long
型进行计算
int+int
会溢出,但是long+long
不会
64位系统中:
long
型最大值:9223372036854775807
int
型最大值:2147483647
(我的devcpp安装的是32位的,所以用long
型也会溢出,32位系统中LONG_MAX
最大值也是2147483647)
解决方法
修改为:
long sum = (long)nums[k]+nums[i]+nums[left]+nums[right]