CMB1. 序列找数
描述
输入描述
输入为n+1个非负整数,用空格分开。输出描述
输出为1个数字,即未出现在子序列中的那个数。示例1
输入:
3 3 0 1
输出:
2
C 解法, 执行用时: 1ms, 内存消耗: 224KB, 提交时间: 2018-08-10
#include"stdio.h" int main() { int a; int b[10000]; int i=0,j=0; scanf("%d",&a); for(i=0;i<a;i++) scanf("%d",&b[i]); int min,temp; for(i=0;i<a;i++) { min=b[i]; for(j=i+1;j<a;j++) if(b[j]<min) { temp=b[j]; b[j]=min; min=temp; } b[i]=min; } for(i=0;i<a;i++) if(b[i]!=i) { printf("%d",i);break; } }
C 解法, 执行用时: 1ms, 内存消耗: 292KB, 提交时间: 2021-09-10
#include <stdio.h> int minNumberdisappered(int* arr, int arrLen ) { int sz[100]={0}; int i; for(i=0;i<arrLen;i++) { if(arr[i]<0 || arr[i]>arrLen) continue; else { sz[arr[i]]++; } } for(i=0;i<100;i++) { if(sz[i]==0) return i; } if(sz[0]!=0) return arrLen; else return arrLen+1; } int main() { int arr[100]; int index=0,num; while(scanf("%d",&num)!=EOF) { arr[index++]=num; } printf("%d\n",minNumberdisappered(arr,index)); return 0; }
C 解法, 执行用时: 1ms, 内存消耗: 304KB, 提交时间: 2020-07-07
#include <stdio.h> #include <stdlib.h> int main(void) { int n,i,tmp; scanf("%d",&n); int a[n+1]; memset(a,0,(n+1)*sizeof(int)); for(i=0;i<n;i++) { scanf("%d",&tmp); a[tmp]++; } for(i=0;i<n+1;i++) { if(a[i]==0) { printf("%d",i); return 0; } } }
C++14 解法, 执行用时: 1ms, 内存消耗: 364KB, 提交时间: 2020-08-17
#include<stdio.h> #include<string.h> using namespace std; int main(){ int n,sum=0,sum1=0; scanf("%d",&n); for(int i=0;i<=n;i++){ sum+=i; } for(int i=0;i<n;i++){ int temp; scanf("%d",&temp); sum1+=temp; } printf("%d\n",sum-sum1); return 0; }
C 解法, 执行用时: 1ms, 内存消耗: 364KB, 提交时间: 2020-07-21
#include <stdio.h> int main(void) { int no; scanf("%d", &no); int nums[no]; int i = 0; int sum=0,sum1=0; for (i = 0; i < no; i++) { scanf("%d", &nums[i]); sum+=nums[i] ; } sum1=no*(no+1)/2; printf("%d",sum1-sum); return 0; }
下一题