zoukankan      html  css  js  c++  java
  • [LeetCode] 944. Delete Columns to Make Sorted 删除列使其有序


    We are given an array A of N lowercase letter strings, all of the same length.

    Now, we may choose any set of deletion indices, and for each string, we delete all the characters in those indices.

    For example, if we have an array A = ["abcdef","uvwxyz"] and deletion indices {0, 2, 3}, then the final array after deletions is ["bef", "vyz"], and the remaining columns of A are ["b","v"]["e","y"], and ["f","z"].  (Formally, the c-th column is [A[0][c], A[1][c], ..., A[A.length-1][c]]).

    Suppose we chose a set of deletion indices D such that after deletions, each remaining column in A is in non-decreasing sorted order.

    Return the minimum possible value of D.length.

    Example 1:

    Input: A = ["cba","daf","ghi"]
    Output: 1
    Explanation:
    After choosing D = {1}, each column ["c","d","g"] and ["a","f","i"] are in non-decreasing sorted order.
    If we chose D = {}, then a column ["b","a","h"] would not be in non-decreasing sorted order.
    

    Example 2:

    Input: A = ["a","b"]
    Output: 0
    Explanation: D = {}
    

    Example 3:

    Input: A = ["zyx","wvu","tsr"]
    Output: 3
    Explanation: D = {0, 1, 2}
    

    Constraints:

    • 1 <= A.length <= 100
    • 1 <= A[i].length <= 1000

    这道题给了一个字符串数组,里面的字符串长度均相同,这样如果将每个字符串看作一个字符数组的话,于是就可以看作的一个二维数组,题目要求所有列上的字符是非递减顺序的,问最少需要删掉多少列。这道题唯一的难点就是读懂晦涩的题意,估计是出自非母语之手的,其他的并没有太大的难度,就是一个按列来遍历二维数组的操作,若当前位置的字符小于等于下一行同列上的字符,则跳过继续比较下一行和下下一行上的字符。否则说明需要删掉该列,结果 res 自增1,且 break 掉当前列即可,参见代码如下:


    class Solution {
    public:
        int minDeletionSize(vector<string>& A) {
            int n = A.size(), len = A[0].size(), res = 0;
            for (int j = 0; j < len; ++j) {
                for (int i = 0; i < n - 1; ++i) {
                    if (A[i][j] <= A[i + 1][j]) continue;
                    ++res;
                    break;
                }
            }
            return res;
        }
    };
    

    Github 同步地址:

    https://github.com/grandyang/leetcode/issues/944


    参考资料:

    https://leetcode.com/problems/delete-columns-to-make-sorted/


    LeetCode All in One 题目讲解汇总(持续更新中...)

  • 相关阅读:
    Katalon系列十九:元素相同或无法定位时的定位技巧
    Katalon系列十八:用例变量&用例间调用
    读《单核工作法》
    Redis 的主从同步(复制)
    Yii2 框架整体结构
    redis 是如何做持久化的
    php yii 查看帮助时会调用具体脚本类的析构函数
    Redis 底层数据结构介绍
    Redis 的常用命令
    Yii2 框架跑脚本时内存泄漏问题分析
  • 原文地址:https://www.cnblogs.com/grandyang/p/12866773.html
Copyright © 2011-2022 走看看