Java Solution || Greedy approach
class Solution {\n    public int minDeletionSize(String[] strs) {\n        int n = strs.length;\n        int m = strs[0].length();\n        \n        boolean[] 
class Solution {\n    public int minDeletionSize(String[] strs) {\n        int n = strs.length;\n        int m = strs[0].length();\n        \n        boolean[] isSame = new boolean[n];\n        \n        int i=0; \n        \n        int output = 0;\n        \n        while (i < m) {\n            int counter = 0;\n            boolean[] backup = new boolean[n];\n            for (int k=0; k<n; k++) {\n                backup[k] = isSame[k];\n            }\n            for (int j=1; j<n; j++) {\n                if (strs[j].charAt(i) > strs[j-1].charAt(i)) {\n                    isSame[j] = false;\n                }\n                \n                else if (strs[j].charAt(i) == strs[j-1].charAt(i)) {\n                    if (output == i) {\n                        isSame[j] = true;\n                    }\n                }\n                else {\n                    if (output == i || isSame[j]) {\n                        counter = 1;\n                        break;\n                    }\n                }\n            }\n            \n            if (counter == 1) {\n                output++;\n                i++;\n                for (int k=0; k<n; k++) {\n                    isSame[k] = backup[k];\n                }\n            }\n            else {\n                i++;\n            }\n        }\n        \n        return output;\n    }\n}
['Greedy', 'Java']