首页 > 编程知识 正文

阿里笔试后没消息,阿里笔试题

时间:2023-05-06 10:38:13 阅读:10309 作者:26

一共两个算法,第一题通过了80%的案例,另一题没有做。

第一题:感觉不难,直接暴力,但我觉得只通过80%是时间的复杂性问题。

给定数组,每个数既不是0也不是1。 从其中取一张卡,求出剩下的卡中连续成为1的最大值。

输入情况【1、1、0、1、0、1】输出3解释。 如果取前0,最多为3个1。

带代码:(注:代码只通过80% ) )。

public class main (publicstaticvoidmain (字符串[ ] args ) scannerscanner=newscanner ) system.in ); int t=scanner.nextInt (; int[] resArr=new int[t]; for(intI=0; i t; I ) { int n=scanner.nextInt (; int[] arr=new int[n]; 布尔one=false; 布尔零=假; for(intj=0; j n; j({ARR[j]=Scanner.nextint ); if(ARR[j]==1) one=true; if(ARR[j]==0) zero=true; }if(zero==false ) { resArr[i]=2; 继续; }if(one==false ) { resArr[i]=n; 继续; (if ) n==1) { resArr[i]=1; 继续; (} int res=1; 布尔标志=假; for(intk=0; k n; k () if ) ARR[k]==1) continue; 标志=true; int left=k - 1; int right=k 1; int sum=0; while(left=0) if ) arr[left]==1) ) sum; 左- -; } else break; }while(rightn ) if ) arr[right]==1) { sum; 光之美少女; } else break; }RES=math.max(RES,sum ); resArr[i]=res; }if(flag==false ) resArr[i]=2; }for(intI=0; i t; I ) system.out.println(resarr[I]; }}钢笔问题2。 内容太多了,不记得了,时间不够。

求酒店问题、图、路径最小

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。