免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 6334 | 回复: 4
打印 上一主题 下一主题

[算法] 华为面试题,求答案? [复制链接]

论坛徽章:
1
2015年迎新春徽章
日期:2015-03-04 09:49:45
1 [报告]
发表于 2014-08-15 12:52 |显示全部楼层
动态规划 + hash滤重,复杂度2^N, 目前没更好的算法

论坛徽章:
1
2015年迎新春徽章
日期:2015-03-04 09:49:45
2 [报告]
发表于 2014-08-15 14:49 |显示全部楼层

  1. #include <stdio.h>

  2. int main() {
  3.         int input[8] = {1,2,3,4,5,6,7,8};
  4.         int sum[256];

  5.         sum[0] = 0;
  6.         sum[1] = input[0];

  7.         int idx = 2;
  8.         for (int i = 1; i < 8; ++i, idx *= 2) {
  9.                 for (int j = 0; j < idx; ++j) {
  10.                         sum[idx + j] = input[i] + sum[j];
  11.                 }
  12.         }
  13.         for (int i = 0; i < 256; ++i) {
  14.                 printf("%d ", sum[i]);
  15.         }
  16.         return 0;
  17. }
复制代码
DP差不多就这个意思

论坛徽章:
1
2015年迎新春徽章
日期:2015-03-04 09:49:45
3 [报告]
发表于 2014-08-15 15:04 |显示全部楼层
回复 12# udb6688

基本就这么个意思,调试一下就能找到哪里不对了
   

论坛徽章:
1
2015年迎新春徽章
日期:2015-03-04 09:49:45
4 [报告]
发表于 2014-08-15 15:11 |显示全部楼层
我那个代码应该没有错,这么改一下就很清晰了:

  1. #include <stdio.h>

  2. int main() {
  3.         unsigned long input[8] = {1, 10, 100, 1000, 10000, 100000, 1000000,
  4.                 10000000};
  5.         unsigned long sum[256];

  6.         sum[0] = 0;
  7.         sum[1] = input[0];

  8.         int idx = 2;
  9.         for (int i = 1; i < 8; ++i, idx *= 2) {
  10.                 for (int j = 0; j < idx; ++j) {
  11.                         sum[idx + j] = input[i] + sum[j];
  12.                 }
  13.         }
  14.         for (int i = 0; i < 256; ++i) {
  15.                 printf("%08lu\n", sum[i]);
  16.         }
  17.         return 0;
  18. }
复制代码

论坛徽章:
1
2015年迎新春徽章
日期:2015-03-04 09:49:45
5 [报告]
发表于 2014-08-15 15:21 |显示全部楼层
本帖最后由 koolcoy 于 2014-08-15 15:21 编辑

回复 16# udb6688

因为sum[0]和sum[1]已经赋值了,所以就从sum[2]开始算起
   
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP