寻找缺失的整数

1. 问题陈述

给定一个由n-1个整数组成的未排序的序列,其中的元素都是1到n中的不同整数,请设计一个算法在O(n)的时间内寻找到缺失的那个整数。

2. 解题思路

2.1 常规的思路,使用二重循环实现,但是算法的时间复杂度在O(n*n)。

2.2 可以使用累加求和的方式实现。实现代码如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace FindMissingNumber
{
    
class Program
    {
        
static void Main(string[] args)
        {
            
// n = 5
            int n= 5;
            
int[] arr = new int[] { 1,  354};
            
            
int expectedSum = (1 + n) * n / 2;
            
int actualSum = 0;
            
foreachint item in arr )
            {
                actualSum 
+= item;
            }

            Console.WriteLine(
                String.Format(
"Find the missing number : {0}", expectedSum - actualSum));
            Console.ReadKey();
        }
    }
}
 

posted @ 2011-03-14 14:39  qiang.xu  阅读(492)  评论(0)    收藏  举报