一、填空

侧重逻辑思维,没有语言、具体技术考察,大部分属于组合数学、算法。比较基本的知识点有二元树节点树、最小生成树、Hash函数常用方法等。

二、编程题

1、正整数剖分

2、AOE关键路径

3、二元树前序、中序求后序

4、大整数加

//正整数剖分
#include <stdio.h> int func(int n, int k, int max)
{
int min = (int)((n+k-)/k);
if(k==)
return ;
int count = ;
for(int i=min;i<max;i++){
count += func(n-i, k-, max-i);
}
return count;
} int main()
{
int ans;
int i = ;
//ans = func(10, 3, 10);
ans = func(, , );
printf("%d\n", ans); return ;
}
//AOE
#include <stdio.h>
#include <stdlib.h>
#include <string.h> void AOE(int adj[][], int n)
{
int *e = (int*)malloc(sizeof(int)*n);
int *l = (int*)malloc(sizeof(int)*n);
e[]=;
for(int i=;i<n;i++){
int max = ;
for(int j=;j<i;j++){
if(adj[j][i]!= && adj[j][i]+e[j]>max){
max = adj[j][i] + e[j];
}
}
e[i]=max;
}
l[n-]=e[n-];
for(int i=n-;i>=;i--){
int min = ;
for(int j=n-;j>i;j--){
if(adj[i][j]!= && l[j]-adj[i][j]<min){
min = l[j]-adj[i][j];
}
}
l[i]=min;
}
for(int i=;i<n;i++){
if(e[i]==l[i])
printf("%d\t", i+);
}
printf("\n");
free(e);
free(l);
}
int main()
{
const int size = ;
int adj[size][size];
memset(adj, , sizeof(int)*size*size);
adj[][] = , adj[][]=, adj[][]=;
adj[][] = , adj[][]=, adj[][]=;
adj[][] = , adj[][]=, adj[][]=;
adj[][] = , adj[][]=; AOE(adj, size); return ;
}
//二元树前序、中序打印后序
#include <stdio.h>
#include <cstring>
#include <stack>
using namespace std;
void dumpPost(const char* pre, const char* mid)
{
int n = strlen(pre);
if(n==){
printf("%c\t", pre[]);
return;
}
int i;
for(i=;i<n;i++){
if(mid[i]==pre[])
break;
}
char lpre[i], lmid[n-i-];
char rpre[i], rmid[n-i-];
memcpy(lpre, pre+, sizeof(char)*i);
memcpy(lmid, mid, sizeof(char)*i);
memcpy(rpre, pre+i+, sizeof(char)*(n-i-));
memcpy(rmid, mid+i+, sizeof(char)*(n-i-));
lpre[i] = lmid[i] = '\0';
rpre[n-i-] = rmid[n-i-] = '\0';
dumpPost(lpre, lmid);
dumpPost(rpre, rmid);
printf("%c\t", pre[]);
}
int main()
{
const char* preOrder = "ABDEC";
const char* midOrder = "DBEAC";
const char* postOrder = "DEBCA"; dumpPost(preOrder, midOrder);
printf("\n"); return ;
}
//大整数运算
#include <stdio.h>
#include <stdlib.h>
#include <string.h> void strrev(char* s)
{
int i=-;
while(s[++i]!='\0');
for(int j=;j<i/;j++){
char tmp = s[j];
s[j] = s[i-j-];
s[i-j-]=tmp;
}
}
void Add(const char*str1, const char* str2, char* ans)
{
int l1, l2, l;
l1 = strlen(str1);
l2 = strlen(str2);
l = l1>l2 ? l1 : l2;
char* s1 = (char*)malloc(sizeof(char)*(l1+));
char* s2 = (char*)malloc(sizeof(char)*(l2+));
memcpy(s1,str1,(l1+)*sizeof(char));
memcpy(s2,str2,(l2+)*sizeof(char));
strrev(s1);
strrev(s2);
int i;
int sum, carry;
i=sum=carry=;
while(i<l){
char a = i<l1?s1[i]:'';
char b = i<l2?s2[i]:'';
sum = a-''+b-'' + carry;
ans[i] = sum % + '';
carry = sum / ;
i++;
}
if(carry!=)
ans[i++]=carry+'';
ans[i]='\0';
strrev(ans);
free(s1);
free(s2);
}
void Mul(const char*str1, const char* str2, char* ans)
{
int l1, l2, l;
l1 = strlen(str1);
l2 = strlen(str2);
l = l1 + l2;
ans[]='\0';
char* s1 = (char*)malloc(sizeof(char)*(l1+));
char* s2 = (char*)malloc(sizeof(char)*(l2+));
memcpy(s1,str1,(l1+)*sizeof(char));
memcpy(s2,str2,(l2+)*sizeof(char));
strrev(s1);
strrev(s2);
char* tmp = (char*)malloc(sizeof(char)*(l1+));
int s, carry;
s = carry = ;
for(int i=;i<l2;i++){
int j;
for(int j=;j<i;j++)
tmp[j]='';
for(j=;j<l1;j++){
s = (s1[j]-'')*(s2[i]-'')+carry;
tmp[i+j]=s%+'';
carry=s/;
}
if(carry!=)
tmp[i+j++]=carry+'';
tmp[i+j]='\0';
strrev(ans);
strrev(tmp);
Add(ans,tmp, ans);
strrev(ans);
}
strrev(ans);
}
int main()
{
const char a[] = "";
const char b[] = "";
char c[]; Add(a,b,c);
printf("a+b=%s\n", c);
Mul(a,b,c);
printf("a*b=%s\n", c); return ;
}

2012Hulu校园招聘笔试题的更多相关文章

  1. 2014 WAP校园招聘笔试题

    2014 WAP校园招聘笔试题 Problem's Link:   http://www.doc88.com/p-6751117015483.html WAP公司笔试题 We are planning ...

  2. google2013校园招聘笔试题(全国)

    google2013校园招聘笔试题 1. 单项选择题1.1如果把传输速率定义为单位时间内传送的信息量(以字节计算)多少.关于一下几种典型的数据传输速率:1.使用USB2.0闪存盘,往USB闪存盘上拷贝 ...

  3. Microsoft 2013校园招聘笔试题及解答

    Microsoft 2013校园招聘笔试题及解答 题目是自己做的,求讨论.吐槽.拍砖 1.      Which of the following callingconvension(s) suppo ...

  4. Microsoft2013校园招聘笔试题

    Microsoft2013校园招聘笔试题 继续求拍砖!!!! 1. You are managing the database of a book publichser, you currently ...

  5. C# - 2017微软校园招聘笔试题 之 MS Recognition[待解决]

    MS Recognition 在线提交: hihoCoder 1402 http://hihocoder.com/problemset/problem/1402 类似: OpenJudge - I:P ...

  6. 京东2017校园招聘笔试题 【第K个幸运数】

    题目描述 4和7是两个幸运数字,我们定义,十进制表示中,每一位只有4和7两个数的正整数都是幸运数字. 前几个幸运数字为:4,7,44,47,74,77,444,447... 现在输入一个数字K,输出第 ...

  7. 九度OJ 1531 货币面值(网易游戏2013年校园招聘笔试题) -- 动态规划

    题目地址:http://ac.jobdu.com/problem.php?pid=1531 题目描述: 小虎是游戏中的一个国王,在他管理的国家中发行了很多不同面额的纸币,用这些纸币进行任意的组合可以在 ...

  8. PPS2013校园招聘笔试题

    转载请标明出处,原文地址:http://blog.csdn.net/hackbuteer1/article/details/11473405 一.简答题 (1)一位老师有2个推理能力很强的学生,他告诉 ...

  9. Microsoft2013校园招聘笔试题及解答

    继续求拍砖!!!! 1. You are managing the database of a book publichser, you currently store the book orders ...

随机推荐

  1. 关于 NSInvocation

    Invocation   调用的意思. 可想而知NSInvocation 是一个 方法调用 封装的类. 这体现了  面向对象的思想, 及一切皆对象.函数也不例外. 一般编程中,应该很少用到这个. 但是 ...

  2. Android Studio 解决 Gradle 依赖冲突的问题

    Android Studio 解决 Gradle 依赖冲突的问题 参考链接: Android Studio(Gradle)解决库依赖冲突问题:http://www.mobibrw.com/2016/3 ...

  3. iOS_生成pem推送证书(用于百度云推送)

    具体步骤如下: 首先,需要一个pem的证书,该证书需要与开发时签名用的一致. 具体生成pem证书方法如下: 1. 登录到 iPhone Developer Connection Portal(http ...

  4. 优化基于FPGA的深度卷积神经网络的加速器设计

    英文论文链接:http://cadlab.cs.ucla.edu/~cong/slides/fpga2015_chen.pdf 翻译:卜居 转载请注明出处:http://blog.csdn.net/k ...

  5. [svc]linux性能监控

    参考 w - Show who is logged on and what they are doing. [root@n1 ~]# w # w - Show who is logged on and ...

  6. 【Unity】2.9 光源(Lights)

    分类:Unity.C#.VS2015 创建日期:2016-03-31 一.简介 光源 (Lights) 是每个场景的重要组成部分.网格和纹理决定了场景的形状和外观,而光源则决定了三维环境的颜色和氛围. ...

  7. spark repartition

    https://jaceklaskowski.gitbooks.io/mastering-apache-spark/content/spark-rdd-partitions.html http://s ...

  8. (原创)C++11改进我们的程序之move和完美转发

    本次要讲的是右值引用相关的几个函数:std::move, std::forward和成员的emplace_back,通过这些函数我们可以避免不必要的拷贝,提高程序性能.move是将对象的状态或者所有权 ...

  9. ubuntu14 安装 端口转发工具rinetd

    1,下载  第一中方式 用 apt-get install rinetd  或者从官网下载http://www.boutell.com/rinetd/ 2,配置,端口转发的配置在 /etc/rinet ...

  10. C++用new来创建对象和非new来创建对象的区别

    转:http://www.cnblogs.com/GODYCA/archive/2013/01/10/2854777.html 我们都知道C++中有三种创建对象的方法,如下: #include < ...