周赛162:奇数值单元格的数目

  这道题还是很简单的,力扣周赛第一题基本上暴力就可以过。先看题:

  周赛162:奇数值单元格的数目_第1张图片

  读入indices数组,写个两个循环,分别固定x,y,最后再完整的跑一边数组就完事了,其实这道题可以用一维数组来实现,利用地址连续性和索引的数学关系也可以作为迭代器也可以达到预期效果。

二维数组代码如下:

  

class Solution
{
public:
    vectorint>> reconstructMatrix(int upper, int lower, vector<int> &v)
    {
        vectorint>> matrix;
        matrix.push_back(vector<int>());
        matrix.push_back(vector<int>());
        for (int i = 0; i < v.size(); i++)
        {
            if (v[i] == 2)
            {
                matrix[0].push_back(1);
                matrix[1].push_back(1);
                upper--;
                lower--;
            }
            else if (v[i] == 0)
            {
                matrix[0].push_back(0);
                matrix[1].push_back(0);
            }
            else
            {
                if (upper > lower)
                {
                    matrix[0].push_back(1);
                    matrix[1].push_back(0);
                    upper--;
                }
                else
                {
                    matrix[1].push_back(1);
                    matrix[0].push_back(0);
                    lower--;
                }
            }
        }
        if (upper == 0 && lower == 0)
        {
            return matrix;
        }
        matrix.clear();
        return matrix;
    }
};

 

  周赛不易,诸君共勉!

你可能感兴趣的:(周赛162:奇数值单元格的数目)