随笔分类 - Algorithm
摘要:(1)给定一个十进制,求Protocol Buffers的 Varint编码;给定一个16进制的 ZigZag编码,求原码; 参考链接:https://github.com/chrisdickinson/varint/blob/master/encode.js 给定ZigZag编码后的值,求原值。
阅读全文
摘要:本来是搜索as3的相关资料(工作重心已经由前端开发转向webgame开发),在看帖子的时候又看到那道“腾讯前端面试题目”了,以前看到这些题目都不会太注意--感觉实际生产中不太实用。 今天也不知道哪根筯不对,鉴于之前写过那篇《从10W个数中随机抽走2个数,求出那两个数是多少 》 看完题目,想一想呢,似乎套用一下那个公式就好了。那篇文章使用的是 x + y = b; x * x + y * y = c 解上述二元方程便可求解,那三个数,差不多类似 x + y + z = a; x * x + y * y + z * z = b; x * x * x + y * y * y + z...
阅读全文
摘要:最近在面试flash的时候,出了道题目:用程序求1000的阶乘。 说出这个问题的时候,有两种情况,一种会问:“阶乘是什么?”,另外一种可能会想,这个结果会走出Number型能表述的上限。 之前业余的时候写了两个版本:AS3、C++,C++是大二学过后再没碰过了,写的时候查了资料 AS3版本的大数阶乘: package{ import flash.display.Sprit...
阅读全文
摘要:求最大公共子串,常见的做法是使用矩阵。 假设有字符串:abcdefg和字符串abcd,则可构成如下矩阵 a b c d e f g a 1 0 0 0 0 0 0 b 0 1 0 0 0 0 0 c 0 0 1 0 0 0 0 d 0 0 0 1 0 0 0 对两个字符串的每一项都进行比较,若匹配则该项为1,不匹配则为0。然后求出对角线最长为1的那一段序列,即为最大公共子串。 看上面的分开,似乎得...
阅读全文
摘要:假设有字符串“朱元璋”,截取限定的长度为7字节 截取编码为utf-8 结果为“朱” 截取编码为gb2312时 结果为“朱” 字符串为“hello朱元璋”,截取限定的长度为13字节 截取编码为utf-8 结果为“hello朱元” 这里的问题就是gbk编码占位2个字节,而utf-8占位3个字节,完整的示例代码: 1: 2: 3: 4: 5: new document 6: 7: 8: 9: 10: 11: 12: 13: 14: 58: 59: 这里从len/2开始试...
阅读全文
摘要:这道题目是从51js论坛上看到的,链接在这里>> 题目大意是: 从1到10w(共10w个数)中随机抽走2个数,然后打乱剩下的数的顺序,问如果从这剩下的数中快速的找出抽走的是哪2个数? 我想这道题目其实还有限制(印象中好像以前见过,忘记在哪了…),例如: 1、控制变量的个数使用(最多不允许超过5个) 2、不允许使用数组变量 3、不允许改变数组的值 出这种题目,一般来讲是让答题者只使用一次循环,时间复杂度控制在O(n),空间复杂度O(1)。 说明:下文中所指的原数组是指,未被打乱顺序、未被截取的数组 现在的数组,指被抽走2个数且顺序被随机打乱了的数组。 数组的下标从0开始,这里
阅读全文
摘要:一道算法题,以前51js上讨论过。思路就是自己实现乘法运算,如果用递归,如果求1000的阶乘就要出现脚本失控了 51JS上最为经典的方法: 1: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 2: <html xmlns="http://www.w3.org/1999/xhtml"> 3: <head>
阅读全文
摘要:假设有这样一种需求:后台提取日志(日志是用户使用自己开发的编辑器编写的),在前台需要显示它的摘要。 比较实际的例子就是QZONE新版本首页的摘要,后台提取数据,前台显示摘要,那就继续折腾了~ 对于提取摘要,要确定以下几点: 1、以什么为依据提取字符串,字符串的长度还是其它 2、对图片、音频、视频、flash如何处理 假设以br作为分隔,最多取4行摘要,超出的部分显示 “...” 最终的效果如下图,左侧为完整的文章,右侧显示的摘要或是示例效果(假设最多显示十行): 编辑器是自行开发的,以br作为一行来看,需要实现的功能: 1、最多取出10行数据 2、取出的字符串,图片不能超过100张...
阅读全文