在c中数据溢出是一个常见问题。
其中数据在存储中的溢出是一个常见问题,而运算过程中也会出现数据的溢出。
例:
同一条c语句
nums[i+1] - nums[i] != 1
//Line 19: Char 26: runtime error: signed integer overflow: 2147483647 - -2147483647 cannot
//be represented in type 'int' (solution.cpp)
对于一个升序数组[1,2,3]来说,并不会出现溢出问题
而对于类似特殊的升序数组[-2147483648,-2147483647,2147483647],在计算整数减负数时会产生int溢出。
对于这种问题可以通过一个简单的改写而避免这种问题
nums[i+1] - 1 != nums[i]
对于升序数组通过减一个整数来避免溢出
对于有序数组都可以采用这种方式来避免计算过程中的溢出。