Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public static boolean covers(int[][]mat,int[]arr, int k){
- int n=mat.length;
- return covers(mat,arr,k,n,0);
- }
- private static boolean covers(int[][]mat,int[]arr,int k, int n, int row){
- System.out.println("Entered covers: k: "+k+" n: "+n+" row: "+row+" with arr: "+Arrays.toString(arr));
- if(row==n) {
- System.out.println("if row==n : allZero(" + Arrays.toString(arr) + ") is: " + allZero(arr));
- return allZero(arr);
- }
- if(k==0) {
- System.out.println("if k==0: allZero(" + Arrays.toString(arr) + ") is: " + allZero(arr));
- return allZero(arr);
- }
- int[] arr2=new int[arr.length];
- copy(arr2,arr);
- System.out.println("copy is: "+Arrays.toString(arr2));
- xZero(arr2,mat[row]);
- System.out.println("xZero is: "+Arrays.toString(arr2));
- System.out.println("(covers(mat,arr:" + Arrays.toString(arr) +",k: "+k+" ,n: "+n+" ,row+1: "+(row+1)+")|| (covers(mat,arr2:" + Arrays.toString(arr2) +" ,k-1: "+(k-1)+" ,n: "+n+" ,row+1: "+(row+1)+"))");
- return (covers(mat,arr,k,n,row+1)|| covers(mat,arr2,k-1,n,row+1));
- }
- public static void xZero(int[] x, int [] y){
- for(int i=0;i<=x.length-1;i++){
- for(int j=0; j<=x.length-1;j++) {
- if (x[i] == y[j])
- x[i] = 0;
- }
- }
- }
- private static boolean allZero(int[] n){
- boolean flag=false;
- for(int i=0; i<=n.length-1;i++) {
- if (n[i] == 0)
- flag = true;
- else
- return false;
- }
- return flag;
- }
- private static void copy(int[] des, int[]src){
- for(int i=0;i<=des.length-1;i++){
- des[i]=src[i];
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement