题目: 不用除法运算符,计算两个整数相除。 注意: 1、除数为零, 2.最小负数转为正数时溢出的情况。(-2147483648/-1 = 2147483648 > 2147483647) 3.正负号 但是上面的做法效率太低,无法通过。 考虑用左移的方法,速度更快。 思路: 1.为了避免溢出将数据变成 ...
分类:
其他好文 时间:
2017-04-03 11:46:41
阅读次数:
163
需要注意overflow,特别是Integer.MIN_VALUE这个数字。 需要掌握二分法。 不用除法的除法,分而治之的乘方 2. Add Two Numbers You are given two linked lists representing two non-negative number ...
分类:
其他好文 时间:
2016-12-28 12:29:07
阅读次数:
198
这题看似简单,不过两个要求很有意思:1、不准用除法:最开始我想到的做法是全部乘起来,一项项除,可是中间要是有个0,这做法死得很惨。2、空间复杂度O(1):题目说明了返回的那个数组不算进复杂度分析里面做法:既然不用除法,对于某个数i, result[i] = 0到i - 1的乘积 X i + 1...
分类:
其他好文 时间:
2015-08-02 19:46:56
阅读次数:
124
题目:如题所示思路:与上一题要求不一样的是,这里是整数的除法,而不仅仅是正整数,因此需要对输入的两个数的正负性进行判断代码:#include using namespace std;int myDiv(int a,int b){ if(a==0) return 0; if(...
分类:
其他好文 时间:
2015-06-14 16:36:09
阅读次数:
183
题目:如题所示思路:假设问题是a除以b:题目要求是正整数,所以考虑的条件不是很多,如果要求是整数的话,即要考虑正负情况的判断。1、最简单的就是依次用被除数a减去除数b,并统计减去的次数,即为相除结果;这种方法效率不高,尤其是在被除数a很大,除数b很小的情况下,效率非常低;2、考虑每次相减时,将b翻倍...
分类:
其他好文 时间:
2015-06-14 16:30:46
阅读次数:
162
给定一个数组A[1..n],求数组B[1..n],使得B[i] = A[1] * A[2] .. * A[i-1] * A[i+1] .. * A[n]。要求不要使用除法,且在O(n)的时间内完成,使用O(1)的额外空间(不包含B数组所占空间)。...
分类:
编程语言 时间:
2015-05-12 15:41:36
阅读次数:
140
设在内存中有P1,P2,P3三道程序,并按照P1,P2,P3的优先级次序运行,其中内部计算和IO操作时间由下表给出(CPU计算和IO资源都只能同时由一个程序占用):P1:计算60ms---》IO 80ms---》计算20ms P2:计算120ms---》IO 40ms---》计算40ms P3:计算40ms---》IO 80ms---》计算40ms 并行完成三道程序比单道运行节省的时间是(160m...
分类:
其他好文 时间:
2015-01-30 09:08:09
阅读次数:
262
【问题】
1、不用除法运算
两个数组a[N],b[N],其中A[N]的各个元素值已知,现给b[i]赋值,b[i] = a[0]*a[1]*a[2]...*a[N-1]/a[i]; 要求:
1.不准用除法运算2.除了循环计数值,a[N],b[N]外,不准再用其他任何变量(包括局部变量,全局变量等)3.满足时间复杂度O(n),空间复杂度O(1)。
【分析】
提示:题目要求...
分类:
其他好文 时间:
2014-08-15 17:50:49
阅读次数:
198