• 矩阵置零


        题意是要求在01矩阵中,把0的点的行和列都置零。

    #include <iostream>
    #include <vector>
    #include <utility>
     
    using namespace std;
     
    void unguarded_setZero(int *matrix, int m, int n, int i, int j)
    {
        for (int ii = 0; ii < m; ++ii)
        {
            *(matrix + ii * n + j) = 0;
        }
     
        for (int jj = 0; jj < n; ++jj)
        {
            *(matrix + i * n + jj) = 0;
        }
    }
     
    void solve(int *matrix, int m, int n)
    {
        if (matrix == NULL || m <= 0 || n <= 0)
        {
            return;
        }
     
        vector<pair<int, int> > vecZero;
     
        for (int i = 0; i < m; ++i)
        {
            for (int j = 0; j < n; ++j)
            {
                if (*(matrix + i * n  + j) == 0)
                {
                    vecZero.push_back(make_pair(i, j));
                }
            }
        }
     
        for (vector<pair<int, int> >::const_iterator it = vecZero.begin();
            it != vecZero.end();
            ++it)
        {
            const int i = it->first;
            const int j = it->second;
     
            unguarded_setZero(matrix, m, n, i, j);
        }
    }
     
    int main(int argc, char **argv)
    {
        int matrix[][6] =
        {
            {1, 1, 0, 1, 1, 1},
            {0, 1, 1, 1, 0, 1},
            {1, 1, 1, 1, 1, 1}
        };
     
        solve((int *)matrix, 3, 6);
     
        for (size_t i = 0; i < sizeof(matrix) / sizeof(*matrix); ++i)
        {
            for (size_t j = 0; j < sizeof(*matrix) / sizeof(**matrix); ++j)
            {
                cout << matrix[i][j] << " ";
            }
     
            cout << endl;
        }
    }
  • 相关阅读:
    613. Shortest Distance in a Line
    182. Duplicate Emails
    181. Employees Earning More Than Their Managers
    180. Consecutive Numbers
    612. Shortest Distance in a Plane
    178. Rank Scores
    177. Nth Highest Salary
    610. Triangle Judgement
    二维气泡弹窗
    jQuery触发a标签的click事件和原生javascript的区别
  • 原文地址:https://www.cnblogs.com/codingmylife/p/2709654.html
Copyright © 2020-2023  润新知