Register
|
Login
Home
News
Competitions
Practice
How to
Rankings
Calendar
Arena
CodeFu 2007
CodeFu'07 Highlights
Jazoon'07 Highlights
Schedule
Rules
Prizes
Results
Competitions
»
Main CodeFu Competitons
»
CodeFu 2007
»
Results
CodeFu 2007 Results
CodeFu Final Round Results
bobi4597's solution for 200: Consecutive Numbers, written in Java
import java.util.*; public class ConsecutiveNumbers { public int longestSequence(int[] numbers) { int zero = 0; for(int i = 0; i < numbers.length; ++i) if(numbers[i] == 0) ++zero; int n = numbers.length - zero; int[] a = new int[n+1]; int j = 0; for(int i = 0; i < numbers.length; ++i) if(numbers[i]!=0) { a[j] = numbers[i]; ++j; } a[n] = 2000000; Arrays.sort(a); int maxCon = zero; int thisCon = 0; int thisZero = zero; for(int poc = 0; poc < n; ++poc) { thisZero = zero; int i = poc; while((a[i+1] - a[i] - 1) <= thisZero) { thisZero -= (a[i+1] - a[i] - 1); ++i; } thisCon = a[i] - a[poc] + 1; thisCon += thisZero; maxCon = Math.max(maxCon, thisCon); } return maxCon; } }