码迷,mamicode.com
首页 > 编程语言 > 详细

寻找数组0~n缺失数字,若不缺返回后一个元素

时间:2020-04-24 00:54:51      阅读:70      评论:0      收藏:0      [点我收藏+]

标签:sizeof   turn   int   min   code   统计   miss   ++   计数   

#include <stdio.h> int missingNumber(int* nums, int numsSize) { int i = 0; int sum1 = 0; int sum2 = 0; int min = nums[0], max = nums[0]; for (i = 0; i < numsSize; i++) { sum1 += nums[i]; sum2 += i; }//第一个循环去统计数组中内容的和以及数组下标的和以防止正常数组{0,1,2}的出现 for (i = 0; i < numsSize; i++) { if (min >= nums[i]) min = nums[i]; }//第二个循环去找最小值 for (i = 0; i < numsSize; i++) { if (max <= nums[i]) max = nums[i]; }//第三个循环去找最大值 int ret = (min + max) * (numsSize+1) / 2;//求数组正常的和求和公式 if (sum1 ==sum2)//正常放置,返回后一个元素 return max + 1; else return ret - sum1;//找到缺失数字 } int main() { int arr[] = {1,0,2}; int sz = sizeof(arr) / sizeof(arr[0]); int ret=missingNumber(arr, sz); printf("%d", ret); }

寻找数组0~n缺失数字,若不缺返回后一个元素

标签:sizeof   turn   int   min   code   统计   miss   ++   计数   

原文地址:https://blog.51cto.com/14736509/2489793

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!