开篇记录面试第33天

我真的是已经要把北京的工作都错过了,今天面试头条又挂了,深深地绝望,已经完全不知道该超哪个方向努力了。反正现在公司待着吧,然后多复习复习。


这几个题目我感觉是今天答的不好的地方,其他的其实答的还可以,之前复习的也算有些用处了。时间不早了,先把问题列上,后面再找时间把答案补上吧。

  1. 字符串的最长无重复子串。
  2. softmax的loss function推导,softmax和LR有什么区别?
  3. mysql单列索引和多列索引有什么区别?索引的缺点是什么?如果删除了一个带索引表的一行,mysql要做哪些步骤的处理?
  4. 如何复制一个无向图。
    解答:
    1.这个主要的思路就是用三个变量,一个map,一个pre,一个tmp。map用来记录当前字符上一次出现的位置,pre记录以i-1位置上的字符为结尾的最长子串的起始位置,tmp记录当前不重复子串的长度。每次遇到一个字符,就看它有没有出现过,如果没有出现过,那tmp就等于i-pre。如果出现过,再比较map里的位置和pre哪个在右边,以当前字符结尾的最长不重复子串的起始位置就是右边的那个。
    2.softmax的loss function

3.数据库的索引可以加快查询速度,原因是索引使用特定的数据结构(B-Tree)对特定的列额外组织存放,加快存储引擎(索引是存储引擎实现)查找记录的速度。
索引优化是数据库优化的最重要手段。
如果我们的查询where条件只有一个,我们完全可以用单列索引,这样的查询速度较快,索引也比较瘦身。如果我们的业务场景是需要经常查询多个组合列,不要试图分别基于单个列建立多个单列索引(因为虽然有多个单列索引,但是MySQL只能用到其中的那个它认为似乎最有效率的单列索引)。这是因为当SQL语句所查询的列,全部都出现在复合索引中时,此时由于只需要查询索引块即可获得所有数据,当然比使用多个单列索引要快得多。下面以实际例子说明:建博客https://blog.csdn.net/xtdhqdhq/article/details/17582779

你可能感兴趣的:(开篇记录面试第33天)