发布于 2014-11-09 08:13:25 | 207 次阅读 | 评论: 0 | 来源: 网友投递

这里有新鲜出炉的精品教程,程序狗速度看过来!

创新工场

创新工场(英文Innovation Works)由李开复博士创办于2009年9月,是一家致力于早期阶段投资,并提供全方位创业培育的投资机构。创新工场是一个全方位的创业平台,旨在培育创新人才和新一代高科技企业。创新工场通过针对早期创业者需求的资金、商业、技术、市场、人力、法律、培训等提供一揽子服务, 帮助早期阶段的创业公司顺利启动和快速成长。同时帮助创业者开创出一批最有市场价值和商业潜力的产品。创新工场的投资方向将立足信息产业最热门领域:移动互联网、消费互联网、电子商务和云计算。


本文是一份2015创新工场面试题-研发类岗位,感兴趣的同学参考下。

1、 自己所做项目相关问题

2、 求二维数组(矩阵)的子矩阵之和的最大值。(附参考答案)

#include

#include

using namespace std;

#define MAXN 1003

int A[MAXN][MAXN];

long long PS[MAXN][MAXN];

inline long long MatrixSum(int s, int t, int i, int j)

{

return PS[i][j]-PS[i][t-1]-PS[s-1][j]+PS[s-1][t-1];

}

int main()

{

int m, n, i, j;

cin >> n >> m;

for (i=1; i<=n; i++)

for (j=1; j<=m; j++)

cin >> A[i][j];

for (i=0; i<=n; i++)

PS[i][0] = 0;

for (j=0; j<=m; j++)

PS[0][j] = 0;

// 计算矩阵的部分和

for (i=1; i<=n; i++)

for (j=1; j<=m; j++)

PS[i][j] = A[i][j]+PS[i-1][j]+PS[i][j-1]-PS[i-1][j-1];

int a, c;

long long All = A[1][1];

for (a=1; a<=n; a++)

for (c=a; c<=n; c++)

{

// 将子矩阵上下边界设为第a行和第c行,在这些子矩阵中取最大值

long long Tail = MatrixSum(a, 1, c, 1);

for (j=2; j<=m; j++)

{

Tail = max(MatrixSum(a, j, c, j),

MatrixSum(a, j, c, j)+Tail);

All = max(Tail, All);

}

}

cout << All;

}

3、马踏棋盘

如下图所示的棋盘,上面只有一个马,马走“日”字,像图中类似那样走,这样可以有8种走法,若给出一个起点和终点,求出马最后能不能到达终点



最新网友评论  共有(0)条评论 发布评论 返回顶部

Copyright © 2007-2017 PHPERZ.COM All Rights Reserved   冀ICP备14009818号  版权声明  广告服务