
算法
十方魔
朝同歌,暮同酒。
展开
-
象棋问题
***象棋问题***求将帅的所有可能位置,题目网上可以搜到,我是看的《编程之美》。 给了三种解法,第一种简直无语,结构化的其实相当于定义了两个变量i.a,i.b,都属于取巧。还是那种i/9的比较对。 我最先想的是i/10,循环次数要多,不过易于理解 定义1,2,3,4,5,6,7,8,9来分别代表位置: 1—-2—-3 |—–|——| 4—-5—-原创 2016-10-24 17:15:56 · 320 阅读 · 0 评论 -
javascript写算法(一) 动态规划:最长公共子序列
csdn是疯了吗,是baidu算出来的广告嵌在了iframe里,fixed to viewport,之前一直用的c++写算法,在std的基础上javascript的“人造性”更强,比如数组和字符串都有很多自带的function,而且有一种不拘于数据类型的灵活性。写算法的话,网上的提交工具许多是用node 中readline javascript实现最长公共子序列 动态规划原创 2017-03-26 22:35:48 · 3031 阅读 · 0 评论 -
KMP算法的一些误区及其优化
这两天在看哈工大王宏志老师的算法设计入门课,讲到了KMP算法,这个之前也学习过,但一直没有搞的特别明白。于是花了两天的时间,看博客什么的,比如http://www.aboutyun.com/thread-9994-1-1.html就讲的很好。总之现在终于稍微清楚一点了,有一些相关的误区和优化想记录下来.。代码均在xcode(GCC)上可通过,都是很浅的东西,不知道有没有比我还小白的人看。1.原创 2016-12-04 16:40:51 · 732 阅读 · 0 评论 -
javascript 实现快排的两种方法 和sort()的比较,以及效率
思想是一样的,具体到实现还可以用算法导论上的一种,懒得写了,前面那种是网上看到的,主要是每次都切走了数组的pivot,递归的时候再加进去。后面长的那种是移位填坑法,来自严奶奶的数据结构,比较好理解。function quickSort1(arr){ if (arr.length <= 1){return arr}; var pivotIndex = Math.floor(arr.le原创 2017-03-20 19:53:40 · 4840 阅读 · 0 评论 -
javascript 求一组数的最小公倍数和最大公约数的简便算法 (三种方法,面向对象,回归迭代,和循环)
方法来自求多个数最小公倍数的一种变换算法 最小公倍数的算法由最大公约数转化而来。最大公约数可通过如下步骤求得:(1) 找到a1,a2,..,an中的最小非零项aj,若有多个最小非零项则任取一个(2) aj以外的所有其他非0项ak用ak mod aj代替;若没有除aj以外的其他非0项,则转到(4)array.reduce array.forEach arr.map JavaScript算法原创 2017-08-21 10:38:11 · 3971 阅读 · 0 评论 -
灯泡开关问题----bulb switcher,from leetcode
题目描述来源leetcode一个房间里有n个灯泡,初试均为打开状态。有4个按钮对应4种操作类型。可操作次数为m次。n,m的取值范围为[0, 1000]。有四种操作类型 flip all the lightsflip lights with even numbersflip lights with odd numbersflip lights with (3k+1) numbers ,原创 2017-09-18 15:07:42 · 717 阅读 · 0 评论 -
node js 下查找数组最大最小值 时间复杂度 1.5N 思路来自编程之美
主要是熟悉一下node输入输出,以及array.forEach 和 array.map 都不会直接改变原数组。还有三目运算符 : 两侧必须是单语句。const readline = require('readline')const rl = readline.createInterface({ input:process.stdin, output:process.stdout})var inp原创 2017-08-30 15:19:37 · 1406 阅读 · 0 评论 -
js移除数组中元素-- 倒着遍历数组,绕过改变下标的问题
题目描述 移除数组 arr 中的所有值与 item 相等的元素,直接在给定的 arr 数组上进行操作,并将结果返回 示例1 输入[1, 2, 2, 3, 4, 2, 2], 2 输出[1, 3, 4]我一开始还好死不死用的foreach,忽略了改变数组之后,下标也改变的情况,正好被改的那个index上的元素就遍历不到了。后来用for来控制index –,代码如下:function remove原创 2017-08-31 17:06:18 · 5282 阅读 · 0 评论 -
大数相加 之 javascript版 据传是个腾讯面试题
前两天看公众号,有腾讯的面试题是远程写个大数相加。早上自己就练手写了一个。大致思路是用字符串代替数字,倒序后进位相加。暂时不考虑负数的情况。(正负数在判断符号后,可以归纳为异号相减,同号相加,最后处理符号即可)。为了调试方便没有加函数,直接写在最外层:var a = '011', b = '0023'function turnToNum (str){ if(typeo...原创 2018-04-23 14:13:29 · 584 阅读 · 0 评论