栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

Java&C++题解与拓展——leetcode944.删列造序【么的新知识】

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java&C++题解与拓展——leetcode944.删列造序【么的新知识】

每日一题做题记录,参考官方和三叶的题解

目录
  • 题目要求
  • 思路:模拟
    • Java
    • C++
    • Rust
  • 总结

题目要求

思路:模拟
  • 遍历每列每个数,判断顺序即可;
    • 后者小于前者则结果(要删除的列)加一,跳出当前列的循环。
Java
class Solution {
    public int minDeletionSize(String[] strs) {
		int n = strs.length, m = strs[0].length(), res = 0;
        for(int c = 0; c < m; ++c) {
            for(int r = 1; r < n; ++r) {
                if(strs[r - 1].charAt(c) > strs[r].charAt(c)) { // 后者小于前者
                    res++;
                    break;
                }
            }
        }
        return res;
    }
}
  • 时间复杂度: O ( m × n ) O(mtimes n) O(m×n)
  • 空间复杂度: O ( 1 ) O(1) O(1)
C++
class Solution {
public:
    int minDeletionSize(vector& strs) {
		int n = strs.size(), m = strs[0].size(), res = 0;
        for(int c = 0; c < m; ++c) {
            for(int r = 1; r < n; ++r) {
                if(strs[r - 1][c] > strs[r][c]) { // 后者小于前者
                    res++;
                    break;
                }
            }
        }
        return res;
    }
};
  • 时间复杂度: O ( m × n ) O(mtimes n) O(m×n)
  • 空间复杂度: O ( 1 ) O(1) O(1)
Rust
impl Solution {
    pub fn min_deletion_size(strs: Vec) -> i32 {
        let mut res = 0;
        let arr = strs.iter().map(|s| s.chars().collect::>()).collect::>(); //似乎是用来转为可访问的数组?
        for c in 0..strs[0].len() {
            for r in 1..strs.len() {
                if arr[r - 1][c] > arr[r][c] { // 后者小于前者
                    res += 1;
                    break;
                }
            }
        }
        res
    }
}
  • 时间复杂度: O ( m × n ) O(mtimes n) O(m×n)
  • 空间复杂度: O ( 1 ) O(1) O(1)
总结

是久违的模拟简单题,快乐cv一波rust。


欢迎指正与讨论!
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/875050.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号