开篇记录面试第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
    f(x_i)=-\sum_k{y_jlogf(x_i)}

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 主键,外键,超键,候选键 数据库事务的四个特征及含义 视图的作用,可以更改吗 视图是虚拟的表;只包含动态检索数据的...
    DamaoShao阅读 6,272评论 0 3
  • 面试题5:union all 和 union的区别 Union:对两个结果集进行并集操作,不包括重复行,同时进行默...
    行者和他的钢笔阅读 971评论 0 1
  • 索引 数据库中的查询操作非常普遍,索引就是提升查找速度的一种手段 索引的类型 从数据结构角度分 1.B+索引:传统...
    一凡呀阅读 3,050评论 0 8
  • MySQL不权威总结 欢迎阅读 本文并非事无巨细的mysql学习资料,而是选择其中重要、困难、易错的部分进行系统地...
    liufxlucky365阅读 2,679评论 0 26
  • 问题1:char、varchar的区别是什么?varchar是变长而char的长度是固定的。如果你的内容是固定大小...
    风的低语阅读 1,213评论 0 8