知识库

记录点点滴滴

Leetcode做题——1st 队列和栈-岛屿

嘛……本菜鸡终于开始做算法题了。

准备先在Leetcode上把数据结构和算法全过个两遍,然后可能去高校的竞赛题库刷一刷?嘛我觉得一个开发者编程能力是重中之重,比单纯掌握神经网络和机器学习要强得多。嘛,不过我两个都不太会就是了……

我是依据Leetcode提供的章节开始的。第一章的队列和栈的链接如下:

https://leetcode-cn.com/explore/learn/card/queue-stack/216/queue-first-in-first-out-data-structure/862/

然后过完了第一章第一道题,是我好久前尝试过(也是当时唯一尝试过的)岛屿。题目要求计算一个二维网格里的岛屿数量,岛屿被定义为联通着的‘1’集合个数(这么一想是统计连通集合的数量?)。采用了一个使用队列实现的广度优先搜索。记录一些其中的问题和优化。

  1. 要对二维vector的行列有意识。中间大概弄了两三个小时这个事,一直提醒我访问错误,原来我行列号搞反了,一旦不是正方形图就越界……
  2. 判空的情况。其中一个输入是空集,程序没有对空集做操作,导致报错。
  3. 数据类型。这个一开始好好看接口提供的数据类型。它提供的是二维char类vector,我写的时候是用的二维int类vector……

几个可以方便调试和提高的地方:

  1. 在Leetcode中提供程序输出的显示,可以看信息。我到最后一次提交才发现……
  2. 提交成功可以看自己和其他人的运行时间对比。点击运行时间可以看其他人的程序。我的程序20ms,看到一个最低的在1ms以下……定义的东西都看不懂  太可怕了……
点赞

发表评论

邮箱地址不会被公开。 必填项已用*标注