fork download
  1. /* package whatever; // don't place package name! */
  2.  
  3. import java.util.*;
  4. import java.lang.*;
  5. import java.io.*;
  6.  
  7. /* Name of the class has to be "Main" only if the class is public. */
  8. class Ideone
  9. {
  10. public static void main (String[] args) throws java.lang.Exception
  11. {
  12. int[] a1 = {1, 5, 3, 21};
  13. int[] b1 = {2, 10, 5, 1};
  14.  
  15. System.out.println("max weight is"+maxWeight(a1,b1));
  16.  
  17. int[] a2 = {10, 1, 1, 10};
  18. int[] b2 = {1, 1, 20, 1};
  19. System.out.println("max weight is "+maxWeight(a2,b2));
  20. }
  21.  
  22. public static int maxWeight(int[] a, int[] b) {
  23.  
  24. int n = a.length;
  25. if(n==0) return 0;
  26. if(n==1) return Math.max(a[0],b[0]);
  27.  
  28. int dp[] = new int[n];
  29.  
  30. dp[0] = Math.max(a[0], b[0]);
  31. dp[1] = Math.max(dp[0], Math.max(a[1], b[1]));
  32.  
  33. for(int i=2;i<n;i++){
  34. int skip = dp[i-1];
  35. int takeA = a[i] + dp[i-2];
  36. int takeB = b[i] + dp[i-2];
  37.  
  38. dp[i] = Math.max(skip, Math.max(takeA, takeB));
  39. }
  40.  
  41. return dp[n - 1];
  42. }
  43. }
Success #stdin #stdout 0.1s 55492KB
stdin
Standard input is empty
stdout
max weight is31
max weight is 30