あまみや ゆうこ » 2019 » 3

为什么code有bug

我们assume擅长的领域不会出现bug,则有如下可能导致你的程序出现bug:

  • 你的code中混入了不擅长的部分
  • 你没有将不擅长的部分变成自己擅长的部分
  • 你将一些试验性code被混入
  • 你所写的试验性code没有保持和PROD一致的严谨
Published on 3/16/2019 9:32:54 AM

二手科普的乱象

0x00 Background

知识应当是严谨的,现在越来越多的人对某件事的认知没有达到200%,而出来讲自己一知半解的东西传授给他人,这则是导致码农无法写出优秀的code的源泉。

0x01 百度百科

时间复杂度词条

首先我们知道复杂度对于常数是不敏感的,对于2n, 3n我们都可以忽略掉其中的常数2和3,比如二分查找和三份查找的时间复杂度都应当为O(logn),因为无论是以2为底还是以3为底,我们都可以通过换底公式将底数统一,然后会多出一个常数,而前面说过了常数在复杂度中是不敏感的,因此底数是常数,在复杂度中不应写底数。

0x02 LeetCode 143 Reorder List

LeetCode 143. Reorder List

我看到绝大多数百度上list出的题解,都用到了一个叫做快慢指针的东西。首先先科普一下快慢指针的正确姿势。快慢指针是用来判断链表是否带环的一种手段,它可以在O(1)的空间复杂度下判断链表是否有环,在两个指针拥有速度差且进入环的情况下,两个指针一定会相遇。而此题为了找链表的中点使用快慢指针是不恰当的。因为即便算上常数,它和我用一个for循环找到链表长度,再用一个for找中点是一样的。~ 你们说说就一简单的问题为啥非得搞个什么快慢指针出来装个屄呢??? ~

更多内容 »

Published on 3/16/2019 8:05:11 AM