摘要:
解法1: O(n^2)的效率。也就是最简单的两重循环。解法2: 更好也更多被采用的,hash方法。定义一个256的数组就可以了。例如:“abcadfgrtybh”代码: 1 #include 2 #include 3 #include 4 int main() 5 { 6 char s... 阅读全文
摘要:
今天下午预约的面试,如期到来,回顾一下面试的过程.1.简单的自我介绍2.开始面试(看简历问),一面一般是压力面试,我简历上写的可以开发手机游戏(Cocos2d-x),他就问知道Dijkstra算法吗,面试时面试官说他电话有问题(确实信号不信),但面试官很nice,我一时没听清,就说不知道,以前写过单... 阅读全文
摘要:
O(n^2)的解决方式:只能用额外的两个变量,可以依次的访问数组的每个元素,每访问一个,就将从当前到末尾的重复字符(置换为 ' ')核心代码: 1 void removeChar(char s[]) 2 { 3 int len = strlen(s); 4 if(len < 2) r... 阅读全文
摘要:
思路很重要:获取字符串长度,两头交换相应字符。核心代码: 1 void swap(char &x,char &y) 2 { 3 x = x^y; 4 y = x^y; 5 x = x^y; 6 } 7 void reverse(char *s) 8 { 9 int i... 阅读全文
摘要:
如果我们假设字符集是ASCII字符,那么我们可以开一个大小为256的bool数组来表征每个字符的出现。数组初始化为false,遍历一遍字符串中的字符,当bool数组对应位置的值为真, 表明该字符在之前已经出现过,即可得出该字符串中有重复字符。否则将该位置的bool数组 值置为true。核心代码: ... 阅读全文
摘要:
给一系列的数1,2,3,,,n(有序的)和一个栈(stack),这个栈无线大,将这n个数据按照顺序放入栈中,但是随机的从栈中弹出,n=5,一共有多少中弹栈方式。分析:卡特兰数的典型应用 这是卡特兰数的典型应用,Catalan数的定义令h(1)=1,Catalan数满足递归式:h(n)=h(1)*h... 阅读全文
摘要:
今天,网易内推打来电话,我正要理个发,心想,一会如果打来面试电话怎么办,为什么呢?因为每次上午10点半,是我最担惊受怕的时候,几个内推的公司都是这个时候打来的电话,我怕的终于又来了,走到半路中,一个杭州的电话打来,我一想大事不妙,估计又有面试电话的(把人一天能闹挺死!!!),面试官问了我有没有时间,... 阅读全文
摘要:
Redis高级实用特性:1.安全性2.主从复制3.事务处理4.持久化机制5.发布订阅消息6.虚拟内存的使用安全性:设置客户端连接后进行任何其他指定前需要使用的密码警告:因为Redis速度相当快,所以一台比较好的服务器下一个外部的用户可以在一秒钟进行150k次的密码尝试,这意味着你需要指定非常非常强大... 阅读全文
摘要:
Redis常用命令Redis提供了丰富的命令对数据库和各种数据库类型进行操作,这些命令可以在Linux终端使用1.键值相关命令2.服务器相关命令键值相关命令Keys pattern 例如:keys *返回满足给定pattern的所有keyexists 确认一个key是否存在del删除一个keyexp... 阅读全文
摘要:
Set数据类型及操作Set集合是通过hash table实现的,所以添加、删除和查找的复杂度都是O(1),hash table会随着添加或者删除自动的调整大小,需要注意的是 hash table大小时候需要同步(获取写锁)会阻塞其他读写操作,可能不久后就会改用跳表(skip list)来实现,跳表已... 阅读全文