【发布时间】:2013-01-27 07:11:58
【问题描述】:
给定一个整数数组(正数和负数),每个整数最多有 K 位(加上符号位),并且已知数组中所有整数的和最多也有 K 位(加上符号位)。设计一种算法,计算数组中整数的总和,所有中间和最多也有 K 位(加上符号位)。 [提示:找出你应该按什么顺序添加正数和负数]。
这是面试材料中的问题,不是家庭作业
我实际上正在考虑创建两个单独的数组,一个用于正数,另一个用于负数,对它们进行排序,然后将两者相加,以便将大多数负数添加到最正数...但这似乎有 O(nlogn) 时间复杂度(排序)和 O(n) 空间复杂度>请帮忙!
【问题讨论】:
-
只要结果正确,溢出就是问题?如果没有,就求和。
-
@Ingo 有 ;) 最左边的位 0 反转为 1
-
@meze 那么,也许最低有效位是 奇/偶 位?