Advertisement
Guest User

Untitled

a guest
Aug 20th, 2017
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 0.99 KB | None | 0 0
  1. class Solution {
  2.      public int findMaxForm(String[] strs, int m, int n) {
  3.         int len = strs.length;
  4.         List<int[]> freqs = new LinkedList<int[]>();
  5.         for(int i=0;i<len;i++){
  6.            int[] freq = new int[2];
  7.             String str = strs[i];
  8.             int slen = str.length();
  9.             for(int j=0;j<slen;j++){
  10.                 freq[str.charAt(j)-'0']++;
  11.                
  12.             }
  13.             freqs.add(freq);
  14.         }
  15.        return helper(freqs,0,m,n);
  16.        
  17.     }
  18.    
  19.    
  20.     public int helper(List<int[]> cand, int pos,int m,int n ){
  21.         int len = cand.size();
  22.         int dep = Integer.MIN_VALUE;
  23.         for(int i = pos;i<len;i++){
  24.             int[] temp = cand.get(i);
  25.             m-= temp[0];
  26.             n-= temp[1];
  27.             if(m>=0&&n>=0){
  28.                 dep =Math.max(dep,helper(cand,i+1,m,n)+1);
  29.             }
  30.             m+= temp[0];
  31.             n+= temp[1];
  32.         }
  33.        return dep==Integer.MIN_VALUE?0 : dep;
  34.     }
  35.    
  36. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement