摘要:
问题1:字符串中第一个不重复的字符 题目描述 请实现一个函数用来找出字符流中第一个只出现一次的字符。例如,当从字符流中只读出前两个字符"go"时,第一个只出现一次的字符是"g"。当从该字符流中读出前六个字符“google"时,第一个只出现一次的字符是"l"。 输出描述: 如果当前字符流没有存在出现一 阅读全文
摘要:
题目 给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。 解题思路 快速幂算法:a^11 = a^(2^3+2^1+2^0) = a^(2^3) * a^(2^1) * a^(2^0) (11的二进制表示是1011) 也就是我们把指数转成二 阅读全文
摘要:
题目 输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。 解题思路 用位运算解决,用1与n进行与运算,能够判断最右边一位数是否为1,若为1则count++ 然后将n无符号右移,继续判断原第二位数,注意必须是无符号右移>>>,不能用带符号右移>>,因为负数用补码表示,若用符号右移则一直补 阅读全文
摘要:
特性比较 mysql5.5之后默认的存储引擎为InnoDB,在此之前默认存储引擎是MyIsam 其他区别 1)对于delete操作,InnoDB是逐行删除,MyIsam是删表重建 2)对于count()函数,MyIsam内部维护一个count变量,InnoDB需要扫描全表 3)对于自增长字段,如需要 阅读全文
摘要:
前言 本文只但从数据库本身来看查询慢的可能因素,至于内存不够、网速较慢不属于本文讨论范畴。 本文内容参考自公众号文章: 腾讯面试:一条SQL语句执行得很慢的原因有哪些? 不看后悔系列 我对公众号中的内容作自己的梳理总结 开始 首先要分类讨论一下,这条查询语句是在偶尔的情况下查询效率慢,还是一直都存在 阅读全文
摘要:
题目 我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法? 解题思路 当n=1时,只能竖着排列,所以f(1)=1 当n=2时,可以横着和竖着两种排列,所以f(2)=2 当排列了n-1块的时候,在加上第n块矩形进来时,此时有两 阅读全文
摘要:
基础跳台阶 题目 一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。 解题思路 这道题就是斐波那契数列的变形问法,因为跳上第N个台阶有两种方式,第一个就是从第N-1个台阶上跳一级上来,第二个就是从第N-2个台阶上跳两级上来。 那么求 阅读全文
摘要:
键的过期时间 设置过期时间 Redis可以为存储在数据库中的值设置过期时间,作为一个缓存数据库,这个特性是很有帮助的。我们项目中的token或其他登录信息,尤其是短信验证码都是有时间限制的。 按照传统的方法都是项目本身判断过期,这样无疑影响了系统性能。 redis可以为set或者expire两种方式 阅读全文
摘要:
前言 redis是用键值对的形式来保存数据,键类型只能是String,但是值类型可以有String、List、Hash、Set、Sorted Set五种,来满足不同场景的特定需求。 本博客中的示例不是将控制台作为redis的一个客户端,而是将redis运用在java里进行测试 需要有java red 阅读全文
摘要:
redis redis作为一个非关系型内存键值数据库,可以存储键值和五种不同类型的值类型。 键值只能为String型,值类型可以为String、List、Hash、Set、Sorted Set五种类型。 因为redis是将数据保存在内存中,因此读写效率非常高,常用作缓存,另外也可以用于分布式锁。除此 阅读全文