2018年8月16日

随机洗牌算法Knuth Shuffle和错排公式

摘要: Knuth随机洗牌算法:譬如现在有54张牌,如何洗牌才能保证随机性。可以这么考虑,从最末尾一张牌开始洗,对于每一张牌,编号在该牌前面的牌中任意一张选一张和当前牌进行交换,直至洗到第一张牌为止。参考代码如下: 由上述方法可知,每一张牌经过洗牌之后一定不会出现在原来位置,那么一共会有多少情况呢,这其实就 阅读全文

posted @ 2018-08-16 21:08 ZefengYao 阅读(1800) 评论(0) 推荐(0) 编辑

两个栈实现队列

摘要: 两个栈实现队列 可以知道栈是先进后出的,把元素先压进第一个栈,之后再把元素抛出,压进第二栈,从第二个栈抛出的元素满足先进先出的原则。 实现queue的push操作:直接把元素都压入第一个栈即可。 实现queue的pop操作:1:判断第二个栈是否有元素?2:若第二个栈有元素,抛出第二个栈的栈顶元素即可 阅读全文

posted @ 2018-08-16 11:56 ZefengYao 阅读(144) 评论(0) 推荐(0) 编辑

面试杂题

摘要: 1: 字符串中,把所有星号都移动到字符串的最前端,举个例子:字符串*ad**das*wq*,处理后变成 *****adadswq 思路:可以建立双指针,第一个指针(记为x)每次指向字符串的最后一个星号的位置,第二个指针(记为y),指向在指针x左边的那些位置当中,从右往左遍历第一个不是星号的字符的位置 阅读全文

posted @ 2018-08-16 00:04 ZefengYao 阅读(133) 评论(0) 推荐(0) 编辑

导航