Smallest unused ID

http://www.codewars.com/kata/smallest-unused-id

Description:

Hey awesome programmer!

You‘ve got much data to manage and of course you use zero-based and non-negative ID‘s to make each data item unique!

Therefore you need a method, which returns the smallest unused ID for your next new data item...

Go on and code some pure awesomeness!

自己写了一段超级烂的

  Console.WriteLine("Length = {0}", ids.Length);
            ids = ids.OrderBy(x => x).ToArray();
            foreach (var number in ids)
            {
                Console.Write("{0} ", number);
            }
            Console.WriteLine();

            int count = ids.Count();
            int result = ids.Min() - 1;
            if (result != -1)
            {
                return 0;
            }
            bool loopAllNumber = true;
            for (int i = 0; i < count; i++)
            {
                result++;
                if (result != ids[i])
                {
                    loopAllNumber = false;
                    break;
                }
            }
            Console.WriteLine("after for loop,result = {0}", result);
            if (loopAllNumber)
            {
                result++;
            }
            return result;

其他人写的,使用了Linq的Except

   var max=ids.Max();
   var excepts= Enumerable.Range(0, max).Except(ids);
           return excepts.Count() == 0 ? max + 1 : excepts.Min();

//
// 摘要:
// 通过使用默认的相等比较器对值进行比较生成两个序列的差集。
//
// 参数:
// first:
// 一个 System.Collections.Generic.IEnumerable<T>,将返回其不在 second 中的元素。
//
// second:
// 一个 System.Collections.Generic.IEnumerable<T>,如果它的元素也出现在第一个序列中,则将导致从返回的序列中移除这些元素。
//
// 类型参数:
// TSource:
// 输入序列中的元素的类型。
//
// 返回结果:
// 包含两个序列元素的差集的序列。
//
// 异常:
// System.ArgumentNullException:
// first 或 second 为 null。
public static IEnumerable<TSource> Except<TSource>(this IEnumerable<TSource> first, IEnumerable<TSource> second);

时间: 2024-10-23 20:54:36

Smallest unused ID的相关文章

openstack-ceilometer

/etc/ceilometer/ceilometer.conf [DEFAULT] # # Options defined in oslo.messaging # # Use durable queues in amqp. (boolean value) # Deprecated group/name - [DEFAULT]/rabbit_durable_queues #amqp_durable_queues=false # Auto-delete queues in amqp. (boolea

openstack-nova

Nova-Master openstack-nova-api openstack-nova-cells openstack-nova-cert openstack-nova-conductor openstack-nova-console openstack-nova-network openstack-nova-novncproxy openstack-nova-objectstore openstack-nova-scheduler Nova-compute openstack-nova-c

Haproxy Configure File

---------------------- HAProxy Configuration Manual ---------------------- version 1.5.11 willy tarreau 2015/02/01 This document covers the configuration language as implemented in the versionspecified above. It does not provide any hint, example or

Android - 抑制lint的Android XML的警告:tools:ignore

抑制lint的Android XML的警告:tools:ignore 本文地址:http://blog.csdn.net/caroline_wendy Android的XML经常会出现警告,对于一个良好的程序,应该认真对待所有的警告. 除非我们可以确认警告,才可以排除. 显示所有警告的方法:Analyze -> Inspect Code; 就可以检查出所有的警告: 抑制警告使用: tools:ignore. // 忽略全部 xmlns:tools="http://schemas.andro

Giraph添加应用程序Weakly Connected Components算法

本人原创,转载请注明出处! 本人QQ:530422429,欢迎大家指正.讨论. 目的:举例说明如何在Giraph中添加应用程序,以WCC(Weakly Connected Components)算法为例,描述怎么添加Vertex的子类,自定义输入输出格式和使用Combiner等. 背景:Giraph源码中自带有WCC算法,类为:org.apache.giraph.examples.ConnectedComponentsVertex,代码如下: package org.apache.giraph.

Samurai Framework 学习笔记--samurai中的宏魔法(待更新)

Samurai Framework 学习笔记–samurai中的宏魔法 文件 Samurai_Predefine.h Samurai里的一些预设宏 // 这3个宏是在定义属性 @prop_assign( NSInteger, page IN)的时候标记这个数据流的方向时用的. #define IN #define OUT #define INOUT // 函数属性限定符: __attribute__((unused)) 这个限定符属性禁止编译器在未引用该函数时生成警告 // 这里先用__unus

生产SparkStreaming数据零丢失最佳实践(含代码)

MySQL创建存储offset的表格 mysql> use test mysql> create table hlw_offset( topic varchar(32), groupid varchar(50), partitions int, fromoffset bigint, untiloffset bigint, primary key(topic,groupid,partitions) ); Maven依赖包 <scala.version>2.11.8</scala

cypheta_v

/* Navicat MySQL Data Transfer Source Server : lj Source Server Version : 50129 Source Host : 404 Source Database : cypheta Target Server Type : MYSQL Target Server Version : 50129 File Encoding : 65001 */ SET FOREIGN_KEY_CHECKS=0; -- ---------------

马哥开啊了看穿拉杆没错啦过啦嘎蓝光牌的

http://www.xx186.com/web/web_kpic.asp?id=156613http://www.xx186.com/web/web_kpic.asp?id=156608http://www.xx186.com/web/web_kpic.asp?id=156605http://www.xx186.com/web/web_kpic.asp?id=156602http://www.xx186.com/web/web_kpic.asp?id=156600http://www.xx18