算法之道
chenchuangfeng
这个作者很懒,什么都没留下…
展开
-
算法之道----不用加,减, 乘 ,除 计算 a+b的值
在面试笔试中会考到这类题目,要求不用加减乘除运算来计算两数和,其实考的就是位运算。 规则1: 如果1010+0101 = 1111在计算上不产生进位, 则1010^0101 = 1010+0101 = 1111 上面1010和 0101 二进制加法计算的特点是没有进位,所以他们的二进制加法和按位异或运算结果才...2013-03-26 20:18:31 · 169 阅读 · 0 评论 -
算法之道--左右旋转字符串
定义字符串的左旋转操作:把字符串前面的若干个字符移动到字符串的尾部。如把字符串abcdef左旋转2位得到字符串cdefab。请实现字符串左旋转的函数,要求对长度为n的字符串操作的时间复杂度为O(n),空间复杂度为O(1)。 以下算法实现了可以做旋转和右旋转....原理:abcde123456根据要旋转的位数k,把数组分成两子串,例如K=6,进行右旋转,则...2013-01-31 18:24:41 · 99 阅读 · 0 评论 -
腾讯微信面试题--实现时间复杂度为O(1)的栈
昨天下去去面试微信实习,遇到这道算法题,当时被卡住,故今天把它写出来做下知识整理, 原题:实现一个栈,满足min() pop() push()方法的时间复杂度都为O(1).( min()返回栈中最小元素 ) 思路1:用一个变量minItem记录栈中的最小值,在push()中 每次加入一个item就跟minItem对比,item更小,只item赋给minI...2013-02-26 16:54:40 · 152 阅读 · 0 评论 -
最短路径--------Floyd算法剖析
微博:http://weibo.com/375061590QQ :375061590 用到两个重要矩阵: 1.d[numVex][numVex] (numVex图的顶点数):最开始该矩阵就是图的邻接矩阵,经过Floyd算法处理开后,d[numVex][numVex]中的d[i][j],表示着从顶点i到j的最短路径的权重。 2.p...2013-02-28 01:08:58 · 126 阅读 · 0 评论