首页 > 编程语言 > 详细

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

时间:2020-04-23 23:40:05      阅读:130      评论:0      收藏:0      [点我收藏+]
#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缺失数字,若不缺返回后一个元素

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

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!