1、亚信校招笔试题目public class BSTMinLength public static void main(String args) TreeNode tNode11 = new TreeNode(10, null, null); TreeNode tNode12 = new TreeNode(50, null, null); TreeNode tNode13 = new TreeNode(5, null, null); TreeNode tNode14 = new TreeNode(30, null, null); TreeNode tNode21 = new TreeNode(30
2、, tNode11, tNode12); TreeNode tNode22 = new TreeNode(30, tNode13, tNode14); TreeNode tNodeRoot = new TreeNode(100, tNode21, tNode22); private static int minlength(TreeNode tNode) if (tNode != null) return getlength(tNode,0); return -1; private static int getlength(TreeNode tNode,int curLength) int m
3、inLeft=-1; int minRight=-1; if !=null) minLeft=getlength, curLength+; if !=null) minRight=getlength, curLength+; if =null & =null) return curLength+; if =null) return minRight; if =null) return minLeft; return minLeftminRight minRight:minLeft; class TreeNode int value; TreeNode leftNode; TreeNode ri
4、ghtNode; TreeNode(int value, TreeNode lefeNode, TreeNode rightNode) = value; = lefeNode; = rightNode; #include using namespace std; int lruCountMiss(int max_cache_size, int *pages, int len) int count = 0; int i,j,k,n; bool flag = false; int *a = new intmax_cache_size; 转链表lnode *reverse(lnode *head)
5、if(head) lnode *prev = NULL; lnode *curr = head; lnode *next = curr-next; curr-next = prev; while(next != NULL) prev = curr; curr = next; next = next-next; curr-next = prev; return curr; else return head; ;lnode *reverseLinkedList(lnode *list) if(list) lnode *ori = list; lnode *half = list; lnode *p
6、rev = list; while(list & half & half-next) prev = list; list = list-next; half = half-next; if(half) half = half-next; if(list) prev-next = reverse(list); return ori; return list;4. SJFfloat waitingTimeSJF(int * requestTimes, int * durations,int n) int *flags = new intn; float sums = 0; for(int i =
7、0 ;i n; i+) flagsi = -1; int nowtime = 0; for( int i = 0; i n; i+ ) int count = 0; for(int k = 0; k n;k+) if(count = 0) if(requestTimesk =0 ) flagscount+ = k; else if(durationsk =0 & requestTimesk = nowtime ) if( durationsk durationsflags0) count = 1; flags0 = k; else if( durationsk = durationsflags
8、0 ) flagscount+ = k; if(count = 0) count = 1; for(int j = 0; j=0 ) flags0 = j; nowtime = requestTimesj; int idx = flags0; int minreq = requestTimes flags0 ; int mindrus = durationsidx; if(count 1) for(int j = 1; j count ;j+) if(requestTimesflagsj minreq ) minreq =requestTimesflagsj; idx = flagsj; su
9、ms += nowtime - requestTimesidx; nowtime += durationsidx; requestTimesidx = -1; durationsidx = -1; return sums/n;5 无向连通判断是否为树#include#include#includeconst int N=10000, M=100000;bool edgeNN; 老鼠奶酪#include using namespace std;int isPath(int *grid, int m, int n);struct _TraversedNode int x; int y; _Trav
10、ersedNode *next;struct _Node int x; int y;int main(int argc, const char * argv) int *grid= new int*8; for(int i=0;i8;i+) gridi= new int8; grid00=1; grid01=1; grid02=0; grid03=0; grid04=0; grid05=0; grid06=0; grid07=1; grid10=1; grid11=1; grid12=1; grid13=1; grid14=1; grid15=1; grid16=1; grid17=1; gr
11、id20=1; grid21=0; grid22=0; grid23=0; grid24=1; grid25=0; grid26=0; grid27=1; grid30=1; grid31=1; grid32=1; grid33=0; grid34=1; grid35=0; grid36=0; grid37=1; grid40=0; grid41=1; grid42=0; grid43=0; grid44=1; grid45=1; grid46=1; grid47=1; grid50=0; grid51=1; grid52=0; grid53=0; grid54=0; grid55=0; gr
12、id56=0; grid57=1; grid60=0; grid61=1; grid62=0; grid63=9; grid64=1; grid65=1; grid66=1; grid67=1; grid70=0; grid71=1; grid72=1; grid73=1; grid74=0; grid75=0; grid76=1; grid77=0; for(int i=0;i8;i+) for(int j=0;j8;j+) coutgridij ; coutx=0; TraversedNode-y=0; head=TraversedNode; p=TraversedNode; p-next
13、=NULL; int count_node=0; int num_node=1; _Node *node=new _Noden+m; _Node *node_next=new _Noden+m; node0.x=0; node0.y=0; while(1) for(int i=0;inum_node;i+) if(nodei.x+1=m-1) if(gridnodei.x+1nodei.y!=0) if(gridnodei.x+1nodei.y=9) step+; cout可以最短step步到达终点x=nodei.x+1)&(p_check-y=nodei.y) p_check=NULL; f
14、lag_down_success=false; else p_check=p_check-next; if(flag_down_success) TraversedNode=new _TraversedNode; TraversedNode-x=nodei.x+1; TraversedNode-y=nodei.y; p-next=TraversedNode; p=TraversedNode; p-next=NULL; node_nextcount_node.x=nodei.x+1; node_nextcount_node.y=nodei.y; count_node+; flag_down_su
15、ccess=true; if(nodei.x-1=0) if(gridnodei.x-1nodei.y!=0) if(gridnodei.x-1nodei.y=9) step+; cout可以最短step步到达终点x=nodei.x-1)&(p_check-y=nodei.y) p_check=NULL; flag_up_success=false; else p_check=p_check-next; if(flag_up_success) TraversedNode=new _TraversedNode; TraversedNode-x=nodei.x-1; TraversedNode-y
16、=nodei.y; p-next=TraversedNode; p=TraversedNode; p-next=NULL; node_nextcount_node.x=nodei.x-1; node_nextcount_node.y=nodei.y; count_node+; flag_up_success=true; if(nodei.y+1=n-1) if(gridnodei.xnodei.y+1!=0) if(gridnodei.xnodei.y+1=9) step+; cout可以最短step步到达终点x=nodei.x)&(p_check-y=nodei.y+1) p_check=N
17、ULL; flag_right_success=false; else p_check=p_check-next; if(flag_right_success) TraversedNode=new _TraversedNode; TraversedNode-x=nodei.x; TraversedNode-y=nodei.y+1; p-next=TraversedNode; p=TraversedNode; p-next=NULL; node_nextcount_node.x=nodei.x; node_nextcount_node.y=nodei.y+1; count_node+; flag
18、_right_success=true; if(nodei.y-1=0) if(gridnodei.xnodei.y-1!=0) if(gridnodei.xnodei.y-1=9) step+; cout可以最短step步到达终点x=nodei.x)&(p_check-y=nodei.y-1) p_check=NULL; flag_left_success=false; else p_check=p_check-next; if(flag_left_success) TraversedNode=new _TraversedNode; TraversedNode-x=nodei.x; Trav
19、ersedNode-y=nodei.y-1; p-next=TraversedNode; p=TraversedNode; p-next=NULL; node_nextcount_node.x=nodei.x; node_nextcount_node.y=nodei.y-1; count_node+; flag_left_success=true; if(count_node=0) cout不存在到达终点的路径endl; return 0; break; step+; num_node=count_node; count_node=0; for(int i=0;inum_node;i+) no
20、dei.x=node_nexti.x; nodei.y=node_nexti.y; cout(nodei.x,nodei.y) ; coutendl; 7格雷码publicstaticintgray(byteterm1,byteterm2)intn=0;for(inti=0;i1);term2=(byte)(term1);if(n=1)return1;elsereturn0;8. #include using namespace std;void myPrint(int n) if(1 = n) cout 1*2 endl; return; int lastnumber = n*(n+1);序
21、循环链表插入整数#include#include#define N 5typedef struct node int data;struct node * next;SN;SN * creatlink ( int a )符串格式化,去掉首尾的空格,以及字符串中间连续的空格,但中间的只保留最后一个空格。比如: i love meituan ,格式化后:ilove meituan.我说一下我的思路:1.用string的substring方法很轻松去掉首尾的空格。2,将去掉首尾空格的字符串转化为一个字符数组,方便对空格的查找。3,将找到的空格的下标记录在一个arrayList(长度可变的优点等)中去
22、。4,将第1步骤得到的字符串进行切割,最后一个空格前的字符串作为前缀字符串 将(包括最后一个空格的下标)从最后一个下标开始到字符串结尾作为后缀字符串。5.将前缀字符串中的所有的空格使用replaceAll方法替换为没有“”。6.将5步骤得到的字符串与后缀字符串进行拼接。那么就得到了想要的字符串。代码实现如下;java1.packagetest;2.3.import4.5.publicclassSolution6.publicstaticStringformatString(StringsourceString)7.8.Strings1=(1,()-1);9.去掉收尾空格后:+s1);10.ch
23、arch=();11.转化为字符数组后:);12.);13.for(charc:ch)14.,);15.16.);17.18.intcount=0;19.ArrayListalist=newArrayList();20.字符串中间的空格的下标依次为:);21.for(inti=0;i;i+)22.if(chi=32)23.count+;24.(i);25.,);26.27.28.29.StringprefixString=;30.StringsuffixString=;31.StringoutString=;32.alist的大小:+();33.最后一个下标位置:+()-1);34.StringlaterString=(0,()-1);35.prefixString=(,);36.suffixString=()-1),();37.outString=prefixString+suffixString;38.returnoutString;39.40.publicstaticvoidmain(Stringargs)41.ilovemeituan);42.43.结果:
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1