精妙算法收集---一道有趣的腾讯笔试加分题
2013-04-12 17:13
363 查看
【转】白话算法经典系列之十四
问题描述:现有一数组a[N-1],求另外一数组b[N-1]
问题约束:1.不能用除法 2.不能用除了遍历a,b两数组需要的变量之外的变量 3.时间复杂度为O(N),空间复杂度为O(1)
解法:
问题描述:现有一数组a[N-1],求另外一数组b[N-1]
问题约束:1.不能用除法 2.不能用除了遍历a,b两数组需要的变量之外的变量 3.时间复杂度为O(N),空间复杂度为O(1)
解法:
// 腾讯2012年实习生笔试加分题 ///article/1389260.html //By MoreWindows( http://blog.csdn.net/MoreWindows ) #include <stdio.h> void PrintfArray(int a[], int n) { for (int i = 0; i < n; i++) printf("%5d ", a[i]); putchar('\n'); } int main() { printf(" 腾讯2012年实习生笔试加分题 \n"); printf(" - /article/1389260.html -\n"); printf(" -- By MoreWindows( http://blog.csdn.net/MoreWindows ) --\n\n"); const int MAXN = 5; int a[MAXN] = {1, 3, 5, 7, 9}; int b[MAXN]; printf("数组a为:\n"); PrintfArray(a, MAXN); b[0] = 1; int i; for (i = 1; i < MAXN; i++) b[i] = b[i - 1] * a[i - 1]; int b[0] = 1; for (i = MAXN - 2; i >= 1; i--) { b[0]*= a[i + 1]; b[i] *= b[0]; } printf("数组b为:\n"); PrintfArray(b, MAXN); return 0; }
相关文章推荐
- 【数据结构&&算法】腾讯2012年实习生笔试加分题
- 腾讯的一道笔试加分题——给定一个数组构造另一个数组
- 一道有意思的题-腾讯2012年实习生笔试加分题
- 【白话经典算法系列之十四】腾讯2012年实习生笔试加分题 .
- 算法编程题积累(4)——腾讯笔试"有趣的数字“问题
- 一道腾讯2012年实习生笔试加分题
- 用 clojure实现【白话经典算法系列之十四】腾讯2012年实习生笔试加分题
- java实现堆排序(2016年腾讯内推笔试的一道算法题)
- 【白话经典算法系列之十四】腾讯2012年实习生笔试加分题
- 【白话经典算法系列之十四】腾讯2012年实习生笔试加分题
- 【白话经典算法系列之十四】腾讯2012年实习生笔试加分题
- 一道有趣的算法题
- 【白话经典算法系列之十一】一道有趣的GOOGLE面试题 --【解法2】
- 腾讯2013的一道实习生笔试题
- 一道求职笔试题:c#算法题
- Nim Game,一个有趣的游戏,也是一道入门算法题。
- 腾讯面试中一道算法题:一个数N 的2进制表现形式中1的个数
- 炒冷饭 《从一道笔试题谈算法优化》全文【作者: 恋花蝶】
- 【算法】一道腾讯前端试题,位图法(bitmap),感受一下什么叫做“算法”
- 白话经典算法系列之十一 一道有趣的GOOGLE面试题 【解法2】