manuelescrig
BAN USERimport java.util.*;
import java.lang.*;
import java.io.*;
/*
Examples:
[] “0-99”
[0] “1-99”
[3, 5] “0-2,4,6-99”
[0, 1, 2, 50, 52, 75] "3-49,51,53-74,76-99"
*/
class FindMissingNumbers {
public static void main (String[] args) {
int[] array = {0,1,2,50,52,75,98};
StringBuilder result = new StringBuilder();
int lastValue = -1;
for (int i=0; i< array.length; i++) {
if (i == 0 && array[i] != 0) {
int value = --array[i];
value--;
if (value != 0) result.append("0-");
result.append(value+",");
lastValue = array[i];
}
if (array[i] - lastValue == 1) {
lastValue = array[i];
} else if (array[i] - lastValue == 2) {
int value = array[i];
value--;
result.append(value+",");
lastValue = array[i];
} else if (array[i] - lastValue > 2) {
lastValue++;
int value = array[i];
value--;
result.append(lastValue+"-"+value+",");
lastValue = array[i];
}
}
if (lastValue != 99) {
lastValue++;
if (lastValue != 99) result.append(lastValue+"-99");
else result.append("99");
}
System.out.println(result);
}
}
class Main {
public static void solve(int[] array) {
if (array.length <= 0) return;
int prev = array[0];
int set = 0;
StringBuilder result = new StringBuilder();
for (int i=0; i<array.length; i++) {
if (i == 0) {
result.append(array[i]);
} else if (array[i] - prev > 1) {
if (set>1) result.append("-" + prev);
result.append("," + array[i]);
set = 0;
}
set++;
prev = array[i];
}
if (set>1) result.append("-" + prev);
System.out.println(result.toString());
}
public static void main(String[] args) {
int[] array = new int[]{1, 2, 3,10, 25, 26, 30, 31, 32, 33};
solve(array);
}
}
public static int solve(int[][] matrix, boolean[][] visited, int row, int col) {
System.out.println("solve - row: " + row + " col: " + col);
if (row > 9 || col > 9) return 0;
if (visited[row][col]) return 0;
if (matrix[row][col] == 0) {
visited[row][col] = true;
return solve(matrix, visited, row+1, col) + solve(matrix, visited, row, col+1);
} else {
find(matrix, visited, row, col);
return 1;
}
}
public static void find(int[][] matrix, boolean[][] visited, int row, int col) {
System.out.println("find - row: " + row + " col: " + col);
if (row > 9 || col > 9) return;
if (row < 0 || col < 0) return;
if (visited[row][col] == true) return;
if (matrix[row][col] == 0) {
visited[row][col] = true;
return;
} else {
visited[row][col] = true;
find(matrix,visited,row+1,col);
find(matrix,visited,row-1,col);
find(matrix,visited,row,col+1);
find(matrix,visited,row,col-1);
return;
}
}
public static void main(String[] args) {
System.out.println("Solving...");
int[][] matrix = new int[][]{
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 },
{ 0, 0, 0, 0, 0, 1, 1, 1, 0, 0 },
{ 0, 1, 0, 0, 0, 0, 0, 0, 0, 1 },
{ 0, 1, 1, 0, 0, 0, 0, 1, 1, 0 },
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 },
{ 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 }};
boolean[][] visited = new boolean[10][10];
System.out.println(solve(matrix, visited, 0, 0));
}
- manuelescrig December 27, 2016