subject

Written in Java Design a recursive algorithm to find the longest increasing sequence of numbers in a rectangular grid. For example, if the grid contains 97 47 56 36 35 57 41 13 89 36 98 75 25 45 26 17 then the longest increasing sequence of numbers is the sequence of length eight consisting of 17, 26, 36, 41, 47, 56, 57, 97. Design an algorithm that solves the same problem but allows for non-decreasing sequences; thus there may be duplicates in the increasing sequence. Can i get help cleaning this up. it needs to be able to allow duplicates
Java Code
import java. util. Stack;
public class {
private static void (int[][] grid, int r, int c) {
int[][] g = new int[r][c];
for (int a = 0; a < r; a++) {
for (int b = 0; b < c; b++) {
g[a][b] = 1;
}
}
int maxLen = -1;
int idx1 = -1;
int idx2 = -1;
for(int a = 0; a < r; a++){
for(int b = 0; b < c; b++){
if(a > 0 && Math. abs(grid[a][b]-grid[a-1][b])==1){ g[a][b] = Math. max(g[a][b], g[a-1][b]+1);
}
if(b > 0 && Math. abs(grid[a][b]-grid[a][b-1])==1){ g[a][b] = Math. max(g[a][b], g[a][b-1]+1);
}
if(maxLen {
maxLen = g[a][b];
idx1 = a;
idx2 = b;
}
}
}
display(grid, g, maxLen, idx1, idx2);
}
private static void display(int[][] grid, int[][] g, int maxLen, int idx1, int idx2){
Stack s1 = new Stack<>();
while(maxLen >= 1){
s1.add(grid[idx1][idx2]);
if(idx1>0 && Math. abs(g[idx1-1][idx2]-g[idx1][idx2])= =1){
idx1--;
}
else if(idx2 >0 && Math. abs(g[idx1][idx2-1]-g[idx1][idx2])= =1){
idx2--;
}
maxLen--;
}
Stack s2 = helper(s1);
for(Integer integer : s2){
System. out. print(integer+" ");
}

}
public static Stack helper(Stack input){
Stack tempStack = new Stack();
while(!input. isEmpty()){
int temp = input. pop();
while (!tempStack. isEmpty() && tempStack. peek() > temp){
input push(tempStack. pop());
}
tempStack. push(temp);
}
return tempStack;
}
}

ansver
Answers: 2

Another question on Computers and Technology

question
Computers and Technology, 22.06.2019 07:30
What type of computer network ensures high security ?
Answers: 1
question
Computers and Technology, 22.06.2019 09:00
What is one way in which tablets differ from laptops and notebooks? tablets are designed for touch-based interaction. tablets are designed to be used as desktops. tablets are designed for input via a keyboard and mouse. tablets are designed to be larger than laptops.
Answers: 1
question
Computers and Technology, 22.06.2019 15:30
What is a costume plot? why is it important to a film or theater production?
Answers: 2
question
Computers and Technology, 22.06.2019 16:20
Consider the following statements, then select one of the answers below: the signal() function shown below registers "sig_handler()" as the signal handler function for the sigkill signal, without the complexity of using when the sigkill signal is sent to a process running this code, by a user typing "kill -kill ", where the correct process id is used for to target the process, sig_handler() will be executed.
Answers: 1
You know the right answer?
Written in Java Design a recursive algorithm to find the longest increasing sequence of numbers in...
Questions
question
Mathematics, 10.10.2019 15:00
question
Mathematics, 10.10.2019 15:00
question
Mathematics, 10.10.2019 15:00
Questions on the website: 13722361