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
martin.taleski's solution for 200: Consecutive Numbers, written in Java
public class ConsecutiveNumbers { public ConsecutiveNumbers (){} public int longestSequence(int[] numbers) { int min = 0; for (int i = 0; i<numbers.length; i++) { min = 0; for (int j=i; j<numbers.length; j++) { if (numbers[j]<numbers[min]) { min = j; } } int swap = numbers[i]; numbers[i] = numbers[min]; numbers[min] = swap; } for (int i = 0; i<numbers.length-1; i++) { int swap = numbers[i]; numbers[i] = numbers[i+1]; numbers[i+1] = swap; } int zeros = 0; for (int i = 0; i<numbers.length; i++) { if (numbers[i] == 0) { zeros++; } System.out.print (numbers[i]+", "); } System.out.println(); int maxSeq = countCons (numbers) + zeros; int testSeq = 1; int next = 1; for (int i = 0; i<numbers.length; i++) { next = 1; testSeq = 1; if (!(i+next > numbers.length-1)) { int zerosUsed = 0; while (numbers[i+next-1]+1 == (numbers[i+next]) || zerosUsed<zeros) { if (!(numbers[i+next-1]+1 == (numbers[i+next]))) { zerosUsed++; if (numbers[i+next-1]+1 == numbers [i+next]-1) { testSeq++; } } testSeq++; next++; if (i+next > numbers.length-1) { break; } } } if (testSeq > maxSeq) { maxSeq = testSeq; } } return maxSeq; } public int countCons (int[] num) { int maxSeq = 1; int testSeq = 1; int next = 1; for (int i = 0; i<num.length; i++) { next = 1; testSeq = 1; if (!(i+next > num.length-1)) { while (num[i+next-1]+1 == (num[i+next])) { testSeq++; next++; if (i+next > num.length-1) { break; } } } if (testSeq > maxSeq) { maxSeq = testSeq; } } return maxSeq; } }