hulu面试题2
来源:互联网 发布:全国大数据培训机构 编辑:程序博客网 时间:2024/05/22 15:00
一、填空
侧重逻辑思维,没有语言、具体技术考察,大部分属于组合数学、算法。比较基本的知识点有二元树节点树、最小生成树、Hash函数常用方法等。
二、编程题
1、正整数剖分
2、AOE关键路径
3、二元树前序、中序求后序
4、大整数加
//正整数剖分#include <stdio.h>int func(int n, int k, int max){ int min = (int)((n+k-1)/k); if(k==1) return 1; int count = 0; for(int i=min;i<max;i++){ count += func(n-i, k-1, max-i); } return count;}int main(){ int ans; int i = 10; //ans = func(10, 3, 10); ans = func(4, 3, 4); printf("%d\n", ans); return 0;}
//AOE#include <stdio.h>#include <stdlib.h>#include <string.h>void AOE(int adj[][9], int n){ int *e = (int*)malloc(sizeof(int)*n); int *l = (int*)malloc(sizeof(int)*n); e[0]=0; for(int i=1;i<n;i++){ int max = 0; for(int j=0;j<i;j++){ if(adj[j][i]!=0 && adj[j][i]+e[j]>max){ max = adj[j][i] + e[j]; } } e[i]=max; } l[n-1]=e[n-1]; for(int i=n-2;i>=0;i--){ int min = 999999; for(int j=n-1;j>i;j--){ if(adj[i][j]!=0 && l[j]-adj[i][j]<min){ min = l[j]-adj[i][j]; } } l[i]=min; } for(int i=0;i<n;i++){ if(e[i]==l[i]) printf("%d\t", i+1); } printf("\n"); free(e); free(l);}int main(){ const int size = 9; int adj[size][size]; memset(adj, 0, sizeof(int)*size*size); adj[0][1] = 6, adj[0][2]=4, adj[0][3]=5; adj[1][4] = 1, adj[2][4]=1, adj[3][5]=2; adj[4][6] = 6, adj[4][7]=5, adj[5][7]=4; adj[6][8] = 2, adj[7][8]=4; AOE(adj, size); return 0;}
//二元树前序、中序打印后序#include <stdio.h>#include <cstring>#include <stack>using namespace std;void dumpPost(const char* pre, const char* mid){ int n = strlen(pre); if(n==1){ printf("%c\t", pre[0]); return; } int i; for(i=0;i<n;i++){ if(mid[i]==pre[0]) break; } char lpre[i], lmid[n-i-1]; char rpre[i], rmid[n-i-1]; memcpy(lpre, pre+1, sizeof(char)*i); memcpy(lmid, mid, sizeof(char)*i); memcpy(rpre, pre+i+1, sizeof(char)*(n-i-1)); memcpy(rmid, mid+i+1, sizeof(char)*(n-i-1)); lpre[i] = lmid[i] = '\0'; rpre[n-i-1] = rmid[n-i-1] = '\0'; dumpPost(lpre, lmid); dumpPost(rpre, rmid); printf("%c\t", pre[0]);}int main(){ const char* preOrder = "ABDEC"; const char* midOrder = "DBEAC"; const char* postOrder = "DEBCA"; dumpPost(preOrder, midOrder); printf("\n"); return 0;}
//大整数运算#include <stdio.h>#include <stdlib.h>#include <string.h>void strrev(char* s){ int i=-1; while(s[++i]!='\0'); for(int j=0;j<i/2;j++){ char tmp = s[j]; s[j] = s[i-j-1]; s[i-j-1]=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+1)); char* s2 = (char*)malloc(sizeof(char)*(l2+1)); memcpy(s1,str1,(l1+1)*sizeof(char)); memcpy(s2,str2,(l2+1)*sizeof(char)); strrev(s1); strrev(s2); int i; int sum, carry; i=sum=carry=0; while(i<l){ char a = i<l1?s1[i]:'0'; char b = i<l2?s2[i]:'0'; sum = a-'0'+b-'0' + carry; ans[i] = sum % 10 + '0'; carry = sum / 10; i++; } if(carry!=0) ans[i++]=carry+'0'; 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]='\0'; char* s1 = (char*)malloc(sizeof(char)*(l1+1)); char* s2 = (char*)malloc(sizeof(char)*(l2+1)); memcpy(s1,str1,(l1+1)*sizeof(char)); memcpy(s2,str2,(l2+1)*sizeof(char)); strrev(s1); strrev(s2); char* tmp = (char*)malloc(sizeof(char)*(l1+2)); int s, carry; s = carry = 0; for(int i=0;i<l2;i++){ int j; for(int j=0;j<i;j++) tmp[j]='0'; for(j=0;j<l1;j++){ s = (s1[j]-'0')*(s2[i]-'0')+carry; tmp[i+j]=s%10+'0'; carry=s/10; } if(carry!=0) tmp[i+j++]=carry+'0'; tmp[i+j]='\0'; strrev(ans); strrev(tmp); Add(ans,tmp, ans); strrev(ans); } strrev(ans);}int main(){ const char a[] = "12345"; const char b[] = "123"; char c[1024]; Add(a,b,c); printf("a+b=%s\n", c); Mul(a,b,c); printf("a*b=%s\n", c); return 0;}
0 0
- hulu面试题2
- hulu面试题1
- hulu面试题1
- hulu面经
- Hulu面经
- Hulu面试题解答——N位数去除K个数字(解法错误sorry)
- 剑指offer面试题36 数组中逆序对个数,hulu面试题,要求写代码发过去
- [面试题] 随机数相关面试题(2)
- java面试题(2)
- 面试题2
- 英文面试题(2)
- java面试题2
- java面试题2
- java面试题2
- 面试题2-- Google
- Java面试题(2)
- C++面试题2
- Java面试题2
- ${pageContext.request.contextPath}
- sizeof和strlen
- 安装VMware工具,设置共享目录
- 静态lib文件的创建与使用
- 解决Tomcat中项目乱码问题
- hulu面试题2
- 如何复制excel表格到outlook邮件?
- Memcached -- Testapp.c
- rhel 配置yum源
- 南邮 OJ 1121 Message Flood
- iterm的配置与学习
- vmware8破解版序列号+注册机下载
- android view startAnimation后setVisibility没有效果
- /etc/ethers