Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Longest Increasing Sub-Sequence problem
- // Naive recursion method. Complexity O(2^n);
- // Wed Jul 25 01:09:10 IST 2012
- import java.util.StringTokenizer;
- import java.io.BufferedReader;
- import java.io.IOException;
- import java.io.InputStreamReader;
- class longestSubSequence{
- public static void main (String [] args)throws IOException{
- new longestSubSequence().run();
- }
- int max = -1;
- int index = 1;
- int [] array;
- private void run() throws IOException{
- array = new int [50];
- BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
- StringTokenizer st = new StringTokenizer (br.readLine());
- array[0] = -1;
- while (st.hasMoreTokens()){
- array[index++] = Integer.parseInt(st.nextToken());
- }
- index--;
- dfs (0,0);
- System.out.println(max);// Prints the maximum length
- }
- private void dfs (int curr, int length){
- if (length > max )max = length;
- if (curr >= index)
- return ;
- for (int I=curr+1;I <= index; I++){
- if (array[I] >= array[curr]){
- dfs (I, length+1);
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement