简单有趣#34:数字分组【难度:1级】:
答案1:
namespace myjinxin
{
using System;
using System. Linq;
public class Kata
{
public int NumbersGrouping ( int [ ] a)
{
return a. GroupBy ( x = > Math. Min ( ( x - 1 ) / 10000 , 99 ) ) . Sum ( g = > g. Count ( ) + 1 ) ;
}
}
}
答案2:
namespace myjinxin
{
using System;
using System. Linq;
public class Kata
{
public int NumbersGrouping ( int [ ] a) {
return a. Select ( x= > Math. Ceiling ( x/ 10000 d) ) . Distinct ( ) . Count ( ) + a. Length;
}
}
}
答案3:
namespace myjinxin {
using System;
using System. Linq;
public class Kata {
public int NumbersGrouping ( int [ ] a ) {
if ( a == null || a. Length == 0 ) {
return 0 ;
}
var lines = 0 ;
var groups = 0 ;
long groupEnd = 0 ;
foreach ( var n in a. OrderBy ( _ = > _ ) ) {
if ( n <= groupEnd ) {
lines + = 1 ;
continue ;
}
while ( groupEnd < n ) {
groups + = 1 ;
groupEnd = groups* ( long ) Math. Pow ( 10 , 4 ) ;
}
lines + = 2 ;
}
return lines;
}
}
}
答案4:
namespace myjinxin
{
using System;
public class Kata
{