IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 数据结构与算法 -> 【五月集训5.11】———矩阵 -> 正文阅读

[数据结构与算法]【五月集训5.11】———矩阵

请添加图片描述

?前言?

开更五月集训专题,由浅入深,深入浅出,飞向大厂!

🧑🏻作者简介:一个从工业设计改行学嵌入式的年轻人
?联系方式:2201891280(QQ)
?全文大约阅读时间: 20min



1351. 统计有序矩阵中的负数

1351. 统计有序矩阵中的负数

解题思路

剑指的一道类似题,只要从右上开始寻找元素就好了。依次往下往左找元素。

代码

class Solution {
public:
    int countNegatives(vector<vector<int>>& grid) {
        int ans = 0;
        int rowsize = grid.size(), colsize = grid[0].size(), row = 0, col = colsize - 1;
        while(col >= 0){
            while(row < rowsize && grid[row][col] >= 0) ++row;
            if(row < rowsize)   ans += rowsize - row,--col;
            else break;
        }
        return ans;
    }
};

注意的点

注意判断边界,比较重要。

1672. 最富有客户的资产总量

1672. 最富有客户的资产总量

解题思路

逐行统计信息,返回结果就好了。

代码

class Solution {
public:
    int maximumWealth(vector<vector<int>>& accounts) {
        int ans = 0;
        for(auto account : accounts){
            int tmp = 0;
            for(auto acc : account) tmp += acc;
            ans = max(ans,tmp);
        }
        return ans;
    }
};

注意的点

没啥注意的

832. 翻转图像

832. 翻转图像

解题思路

每一行进行反转然后取反就好了。

代码

class Solution {
public:
    vector<vector<int>> flipAndInvertImage(vector<vector<int>>& image) {
        int n = image[0].size();
        for(auto &row : image){
            for(int i = 0;i < n / 2;++i)
                swap(row[i],row[n - 1 - i]), row[i] = row[i] == 0 ? 1 : 0,row[n - 1 - i] =row[n - 1 - i] == 0 ? 1 : 0;
            if(n % 2 == 1)  row[n/2] = row[n/2] == 0 ? 1 : 0;
        }

        return image;
    }
};

注意的点

  1. 因为要修改值所以采用&的方式进行遍历
  2. 中间值需要单独判断进行反转

1329. 将矩阵按对角线排序

1329. 将矩阵按对角线排序

解题思路

先全取出来到vector,然后排序写回就好了。

代码

class Solution {
    void sortduijiao(vector<vector<int>>& mat,int row, int col, int rownow,int colnow){
        vector<int> tmp;
        int r = rownow,c = colnow;
        while(r < row&& c < col)    tmp.push_back(mat[r][c]),++r,++c;
        sort(tmp.begin(), tmp.end());
        while(r > rownow)   mat[--r][--c] = tmp.back(), tmp.pop_back();//写回
    }
public:
    vector<vector<int>> diagonalSort(vector<vector<int>>& mat) {
        int row = mat.size(), col = mat[0].size();
        for(int i = 0;i < col;++i)
            sortduijiao(mat,row,col,0,i);

        for(int i = 0;i < row;++i)
            sortduijiao(mat,row,col,i,0);
        return mat;
    }
};

注意的点

  1. 变量命名还是有助于自己的理解的,我们老师经常说代码自注释,要注意。
  2. 可以不用重新改变量,直接反向写回就好了,类似于栈的操作,可以学习一下。

写在最后

水题的一题。今天好忙,大家再忙也要刷题呀。

  数据结构与算法 最新文章
【力扣106】 从中序与后续遍历序列构造二叉
leetcode 322 零钱兑换
哈希的应用:海量数据处理
动态规划|最短Hamilton路径
华为机试_HJ41 称砝码【中等】【menset】【
【C与数据结构】——寒假提高每日练习Day1
基础算法——堆排序
2023王道数据结构线性表--单链表课后习题部
LeetCode 之 反转链表的一部分
【题解】lintcode必刷50题<有效的括号序列
上一篇文章      下一篇文章      查看所有文章
加:2022-05-13 11:54:55  更:2022-05-13 11:55:17 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 4:19:10-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码