public class MaxValueOfGift {
public static int maxValueOfGift(int[][] values,int rows,int cols){
if(cols<=0 || rows <= 0 || values == null){
return 0;
}
int[] maxValues = new int[cols];
int i = 0;
int j = 0;
for(;j < cols;j++){
if(i == 0 && j== 0){
maxValues[j] = values[i][j];
}
if(i == 0 && j > 0){
maxValues[j] = maxValues[j-1] + values[i][j];
continue;
}
}
for(i = 1; i < rows;i++){
for(j = 0;j < cols;j++){
if(j == 0){
maxValues[j] = maxValues[j] + values[i][j];
continue;
}
maxValues[j] = max(maxValues[j-1],maxValues[j])+values[i][j];
}
}
return maxValues[cols - 1];
}
public static int max(int num1,int num2){
return num1 > num2 ? num1:num2;
}
public static void main(String[] args) {
int[][] values = {{1,10,3,8},{12,2,9,6},{5,7,4,11},{3,7,16,5}};
System.out.println(maxValueOfGift(values, values.length, values[0].length));
}
}
public class NumberToString {
public static int numberToString(int number){
if(number < 0){
return 0;
}
String s = Integer.toString(number);
int[] counts = new int[s.length()];
if(s.length() == 1){
counts[0] = 1;
return 1;
}
if(s.length() == 2){
if(((s.charAt(0) - '0')*10 + s.charAt(1) - '0') >= 0 && ((s.charAt(0) - '0')*10 + s.charAt(1) - '0') <= 25){
counts[1] = 2;
return 2;
}else{
counts[1] = 1;
return 1;
}
}
counts[0] = 1;
if(((s.charAt(0) - '0')*10 + s.charAt(1) - '0') >= 0 && ((s.charAt(0) - '0')*10 + s.charAt(1) - '0') <= 25){
counts[1] = 2;
}else{
counts[1] = 1;
}
for(int i = 2; i < s.length();i++){
if(((s.charAt(i-1) - '0')*10 + s.charAt(i ) - '0') >= 0 && ((s.charAt(i-1) - '0')*10 + s.charAt(i) - '0') <= 25){
counts[i] = counts[i - 1]+counts[i - 2];
}else{
counts[i] = counts[i - 1];
}
}
return counts[s.length() - 1];
}
public static void main(String[] args) {
int c = 0;
String s = Integer.toString(c);
System.out.println(numberToString(c));
}
}