zoukankan      html  css  js  c++  java
  • careercup-数组和字符串1.7

    1.7 编写一个算法,若M*N矩阵中某个元素为0,则将其所在的行与列清零。

    类似于leetcode中的 Set Matrix Zeroes

    C++实现代码:

    #include<iostream>
    #include<vector>
    using namespace std;
    
    void setMatricZero(vector<vector<int> > &matrix)
    {
        if(matrix.empty()||matrix[0].empty())
            return;
        int i,j;
        int m=matrix.size();
        int n=matrix[0].size();
        int rflag=0;
        int cflag=0;
        for(i=0; i<m; i++)
            if(matrix[i][0]==0)
                rflag=1;
        for(j=0; j<n; j++)
            if(matrix[0][j]==0)
                cflag=1;
        for(i=1; i<m; i++)
            for(j=1; j<n; j++)
                if(matrix[i][j]==0)
                {
                    matrix[i][0]=0;
                    matrix[0][j]=0;
                }
        for(i=1; i<m; i++)
            for(j=1; j<n; j++)
            {
                if(matrix[i][0]==0||matrix[0][j]==0)
                    matrix[i][j]=0;
            }
        if(rflag)
        {
            for(i=0; i<m; i++)
                matrix[i][0]=0;
        }
        if(cflag)
        {
            for(j=0; j<n; j++)
                matrix[0][j]=0;
        }
    }
    
    int main()
    {
        vector<vector<int> > matrix=
        {
            {0,12,13,14},
            {15,16,17,18},
            {19,0,21,22},
            {23,24,25,26}
        };
        setMatricZero(matrix);
        for(auto a:matrix)
        {
            for(auto t:a)
                cout<<t<<" ";
            cout<<endl;
        }
    }
  • 相关阅读:
    笔记
    Dwarf Tower
    第k小数
    np
    noi 抓住那头牛
    HDU 1575 Try A
    acm 易错警示
    E
    魔改森林 题解(dp+容斥+组合数学)
    F. Unusual Matrix 题解(思维)
  • 原文地址:https://www.cnblogs.com/wuchanming/p/4140955.html
Copyright © 2011-2022 走看看