首页 > 代码库 > 搜狗笔试题
搜狗笔试题
给定一个数组a[N],我们希望构造数组b[N],其中b[i]=a[0]*a[1]*...*a[N-1]/a[i]。
在构造过程:
1、不允许使用除法;
2、要求O(1)空间复杂度和O(n)时间复杂度;
在构造过程:
1、不允许使用除法;
2、要求O(1)空间复杂度和O(n)时间复杂度;
3、除遍历计数器与a[N] b[N]外,不可使用新的变量(包括栈临时变量、对空间和全局静态变量等);
/**********************************************/ /* 给定一个数组a[N],我们希望构造数组b[N],其中b[i]=a[0]*a[1]*...*a[N-1]/a[i]。 在构造过程: 1不允许使用除法; 2要求O(1)空间复杂度和O(n)时间复杂度; 3除遍历计数器与a[N] b[N]外,不可使用新的变量(包括栈临时变量、对空间和全局静态变量等); */ /**********************************************/ void makeArray(int a[],int b[],int len) { int i,j; b[0] = 1; for(i=1;i<len;i++) { b[i] = b[i-1]*a[i-1]; //累乘a[0]*a[1]...a[i-1] } b[0] = a[len-1]; for(j=len-2;j>0;j--) { b[j] *= b[0]; b[0] *= a[j]; } }
搜狗笔试题
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。