美文网首页
ARTS打卡第一周

ARTS打卡第一周

作者: MR_Model | 来源:发表于2021-01-23 10:44 被阅读0次

ARTS打卡第一周

Algorithm:每周至少做一个 leetcode 的算法题

542. 01 矩阵

给定一个由 0 和 1 组成的矩阵,找出每个元素到最近的 0 的距离。

两个相邻元素间的距离为 1 。


来源:力扣(LeetCode)
链接:https://https://leetcode-cn.com/problems/01-matrix/
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

解题思路:

当前位置距离0的最近距离为上、下、左、右相邻点的距离+1

从左上遍历时,根据上面的观点更新数组,右下遍历时,比较最小值,更换数组值

代码:

    vector<vector<int>> updateMatrix(vector<vector<int>>& matrix)
     {
    int width = matrix.size();
    int height = matrix[0].size();

    // 赋值vtDst数组,INT_MAX / 2是由于遍历时,可能出现初始值+1的情况,防止超出长度
    vector<vector<int>> vtDst(width, vector<int>(height, INT_MAX / 2));
    for (int i = 0; i < width; i++)
    {
        for (int j = 0; j < height; j++)
        {
            if (matrix[i][j] == 0)
            {
                vtDst[i][j] = 0;
            }
        }
    }

    // 从左上遍历
    for (int i = 0; i < width; i++)
    {
        for (int j = 0; j < height; j++)
        {
            if (i - 1 >= 0)
            {
                vtDst[i][j] = min(vtDst[i][j], vtDst[i - 1][j] +1);
            }

            if (j - 1 >= 0)
            {
                vtDst[i][j] = min(vtDst[i][j], vtDst[i][j-1] + 1);
            }
        }
    }

    // 从右下遍历
    for (int i = width - 1; i >= 0; i--)
    {
        for (int j = height - 1; j >= 0; j--)
        {
            if (i + 1 < width)
            {
                vtDst[i][j] = min(vtDst[i][j], vtDst[i + 1][j] + 1);
            }

            if (j + 1 < height)
            {
                vtDst[i][j] = min(vtDst[i][j], vtDst[i][j + 1] + 1);
            }
        }
    }

    return vtDst;
}

Review:阅读并点评至少一篇英文技术文章

commenting-out-a-block-of-code-with-vim

使用vim一时爽,一直使用一直爽

Tip:学习至少一个技术技巧

windows下分析使用vs2017内置的内存工具分析内存泄漏,本质上还是通过快照进行人工的确认泄漏处。

类似windows平台下的工具 glags.exe\ pageheap.exe

Share:分享一篇有观点和思考的技术文章

C++20特性

C++20新特性已经推出,而之前的一些公司开发工具在vs2015,且众多C11的新特性不进行引入,等到20的特性被引入不知道又是何年何月。

相关文章

  • ARTS打卡第一周

    ARTS打卡第一周 Algorithm:每周至少做一个 leetcode 的算法题 542. 01 矩阵 Revi...

  • ARTS打卡,第一周

    每周完成一个ARTS: 1.A(Algorithm)每周至少做一个 leetcode 的算法题 2.R(Revie...

  • ARTS打卡第一周

    Algorithm:至少做一个 LeetCode 的算法题。主要为了编程训练和学习。Review :阅读并点评至少...

  • ARTS打卡 第一周

    Algorithm 1.Two Sum Given an array of integers, returnind...

  • ARTS打卡第一周6.16

    Algorithm 经典题型:threeSum 给定一个包含 n 个整数的数组 nums,判断 nums 中是否存...

  • 【ARTS打卡计划】第一周

    A | Algorithm:每周至少做一个Leetcode算法题 比较两个版本号 题目: Compare two ...

  • KirogiYi ARTS打卡:第一周

    Algorithm(两数相加) 描述:给出两个非空的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 ...

  • ARTS 第一周打卡

    ARTS 目录 ✨ 坚持一周奖励自己一个鸡排吃!✨ 第一周(11-24 至 11-29) A: 题目:只出现一次的...

  • ARTS第一周打卡

    所谓A(Algorithm)R(Review)T(Tips)S(Share):每周至少做一个 leetcode 的...

  • ARTS 打卡 5

    Algorithm Leet code 899 有序队列 困难 一开始理解错了题目了,后来理解题目以后,发现只需...

网友评论

      本文标题:ARTS打卡第一周

      本文链接:https://www.haomeiwen.com/subject/cdwyzktx.html