华为OD机试新系统真题-谁没交卷(Java /Py/C++/Go/C/Js)

发布时间:2026/7/16 16:31:59
华为OD机试新系统真题-谁没交卷(Java /Py/C++/Go/C/Js) 谁没交卷华为OD机试新系统真题 华为OD上机考试新系统真题 7月15号 100分题型华为OD机试新系统真题目录点击查看: 华为OD机试新系统真题题库目录机考题库 算法考点详解题目内容张老师组织了一场线上模拟考试并要求考生使用学号登录网站进行考试。考试完成后张老师发现试卷提交不全他需要找到哪些同学没有交卷。若班级内有N NN个学生则学号从1 11开始到N NN结束每个学生一个学号。一个班级内学生个数不超过80 8080即0 N ≤ 80 0 N \leq 800N≤80。请你编写一个程序帮助张老师快速找到哪些学号的学生没有交卷。输入描述班级内学生数量。交卷学生的学号列表由于是按照交卷时间排序的学号是乱序的同时本题确保学号是合法的不存在小于1 11或大于N NN的学号。输出描述未交卷学生的学号列表按照学号升序排列。样例1输入10 1,5,3,2,6,7,8,9,10输出4说明班级内共有 10 人学号 1-10学号为 4 的学生没有交卷因此返回[4]。样例2输入10 9,2,3,5,6,7输出1,4,8,10说明班级内共有 10 人学号 1-10学号为 1,4,8,10 的学生没有交卷因此返回[1,4,8,10]。样例3输入10 9,1,2,4,5,3,7,8,6,10输出说明班级内共有 10 人学号 1-10所有学生均进行了交卷因此返回 。题解思路模拟根据n创建一个大小为n 1记录指定学号是否出现过。初始全部初始化为未出现过。遍历交卷学号将对应学号标记为已出现。从前往后遍历[1, n]如果指定学号未出现加入结果数组中即可。c#includebits/stdc.h#includestring#includevectorusingnamespacestd;// 通用 切割函数 函数 将字符串str根据delimiter进行切割vectorintsplit(conststringstr,conststringdelimiter){vectorintresult;size_t start0;size_t endstr.find(delimiter);while(end!string::npos){result.push_back(stoi(str.substr(start,end-start)));startenddelimiter.length();endstr.find(delimiter,start);}// 添加最后一个部分result.push_back(stoi(str.substr(start)));returnresult;}vectorintqueryNoSubmit(intn,vectorintsubmitID){// 记录是否出现vectorintflag(n1,false);for(autoid:submitID){flag[id]true;}vectorintans;// 未出现从前往后加入结果for(inti1;in;i){if(!flag[i]){ans.push_back(i);}}returnans;}intmain(){intn;cinn;cin.ignore();string input;getline(cin,input);vectorintsubmitID;if(!input.empty()){submitIDsplit(input,,);}vectorintansqueryNoSubmit(n,submitID);for(inti0;ians.size();i){if(i0){cout,;}coutans[i];}return0;}Javaimportjava.util.*;publicclassMain{staticListIntegerqueryNoSubmit(intn,ListIntegersubmitID){// 记录是否出现boolean[]flagnewboolean[n1];for(intid:submitID){flag[id]true;}ListIntegeransnewArrayList();// 未出现从前往后加入结果for(inti1;in;i){if(!flag[i]){ans.add(i);}}returnans;}publicstaticvoidmain(String[]args){ScannerscnewScanner(System.in);intnInteger.parseInt(sc.nextLine());Stringinput;if(sc.hasNextLine()){inputsc.nextLine();}ListIntegersubmitIDnewArrayList();if(!input.isEmpty()){String[]strsinput.split(,);for(Strings:strs){submitID.add(Integer.parseInt(s));}}ListIntegeransqueryNoSubmit(n,submitID);StringBuildersbnewStringBuilder();for(inti0;ians.size();i){if(i0){sb.append(,);}sb.append(ans.get(i));}System.out.print(sb.toString());}}PythondefqueryNoSubmit(n,submitID):# 记录是否出现flag[False]*(n1)forxinsubmitID:flag[x]Trueans[]# 未出现从前往后加入结果foriinrange(1,n1):ifnotflag[i]:ans.append(str(i))returnans nint(input())try:sinput().strip()exceptEOFError:ssubmitID[]ifs:submitIDlist(map(int,s.split(,)))print(,.join(queryNoSubmit(n,submitID)))JavaScriptconstreadlinerequire(readline);constrlreadline.createInterface({input:process.stdin,output:process.stdout});constinput[];rl.on(line,function(line){input.push(line);});rl.on(close,function(){constnparseInt(input[0]);conststrinput.length1?input[1]:;constsubmitID[];if(str.length0){constarrstr.split(,);for(constsofarr){submitID.push(parseInt(s));}}// 记录是否出现constflagnewArray(n1).fill(false);for(constidofsubmitID){flag[id]true;}constans[];// 未出现从前往后加入结果for(leti1;in;i){if(!flag[i]){ans.push(i);}}console.log(ans.join(,));});Gopackagemainimport(bufiofmtosstrconvstrings)funcqueryNoSubmit(nint,submitID[]int)[]int{// 记录是否出现flag:make([]bool,n1)for_,id:rangesubmitID{flag[id]true}varans[]int// 未出现从前往后加入结果fori:1;in;i{if!flag[i]{ansappend(ans,i)}}returnans}funcmain(){reader:bufio.NewReader(os.Stdin)varnintfmt.Fscan(reader,n)reader.ReadString(\n)line,_:reader.ReadString(\n)linestrings.TrimSpace(line)varsubmitID[]intifline!{arr:strings.Split(line,,)for_,s:rangearr{x,_:strconv.Atoi(s)submitIDappend(submitID,x)}}ans:queryNoSubmit(n,submitID)fori,v:rangeans{ifi0{fmt.Print(,)}fmt.Print(v)}}C语言#includestdio.h#includestdlib.h#includestring.h#includestdbool.hint*queryNoSubmit(intn,int*submitID,intsubmitSize,int*returnSize){// 记录是否出现bool*flag(bool*)calloc(n1,sizeof(bool));for(inti0;isubmitSize;i){flag[submitID[i]]true;}int*ans(int*)malloc(sizeof(int)*n);*returnSize0;// 未出现从前往后加入结果for(inti1;in;i){if(!flag[i]){ans[(*returnSize)]i;}}free(flag);returnans;}intmain(){intn;scanf(%d,n);getchar();charline[10005];intsubmitID[10005];intsubmitSize0;if(fgets(line,sizeof(line),stdin)!NULL){line[strcspn(line,\r\n)]\0;if(strlen(line)0){char*tokenstrtok(line,,);while(token!NULL){submitID[submitSize]atoi(token);tokenstrtok(NULL,,);}}}intreturnSize;int*ansqueryNoSubmit(n,submitID,submitSize,returnSize);for(inti0;ireturnSize;i){if(i0){printf(,);}printf(%d,ans[i]);}free(ans);return0;}