首先计算出一个点下一步可走地址, 放到一个数组里保存起来
过滤掉障碍点, 和已经走过的点
利用估值函数算法f(n) = g(n) + h(n)计算出一个点到起始点和到终点和的最短距离
并且把距离大小和上一步位置记录到对应的对象上, 方便后面绘制路径
然后将结果从小到大重新排序, 获取下一步可走点
然后递归循环计算路径
当到达终点时, 开始绘制路径
具体详情请看源代码
每个元素的索引位置对行的长度取模
根据模的结果, 重新建立数组, 就能实现变换
具体详情请看源代码
递归计算是否在同行同列同斜线是否有其他皇后存在
每次递归后, 要应用回溯的方法, 将棋盘恢复, 方面计算其他方法
具体详情请看源代码
算法原理比较简单, 看代码就明白了
具体详情请看源代码
排列: A(m, n) = m! / (m - n)!
组合: C(m, n) = m! / n! * (m - n)!
具体详情请看源代码
Eratosthenes算法 (寻找一定范围内的所有素数)
先筛选掉范围内能被2整数的数
再筛选掉范围内能被3整数的数
依次筛选下去, 直到此数的平方大于总数为止, 剩下的数就全是素数
具体详情请看源代码
function test ( num ) {
if ( num <= 1 ) {
return 1 ;
}
return test ( num - 1 ) + test ( num - 2 )
}
function test ( num ) {
var num1 = 1 ;
var num2 = 1 ;
var num3 = 0 ;
for ( var i = 0 ; i < num - 2 ; i ++ ) {
num3 = num1 + num2 ;
num1 = num2 ;
num2 = num3 ;
}
return num3
}
var a = 5 ;
var b = 8 ;
//第一种
a = a + b ;
b = a - b ;
a = a - b ;
//第二种
a = a | b ;
b = a | b ;
a = a | b ;
//当a和b都不是数字的时候
a = [ a , b ]
b = a [ 0 ]
a = a [ 1 ]
不适用循环方法 输入 3 返回[1, 2, 3]数组
function test ( num ) {
var arr = [ ] ;
arr . push ( num ) ;
if ( -- num ) {
arr = test ( num ) . concat ( arr ) ;
}
return arr
}
//利用闭包 公用一个arr
function test ( num ) {
var arr = [ ] ;
return ( function ( ) {
arr . unshift ( num ) ;
if ( -- num ) {
arguments . callee ( num )
}
return arr ;
} ) ( )
}
//利用正则
function test ( num ) {
var arr = [ ] ;
var resArr = [ ] ;
arr . length = num + 1 ;
var str = arr . join ( 'a' ) ;
str . replace ( / a / g, function ( ) {
resArr . unshift ( num -- ) ;
} )
return resArr ;
}
利用多种方式获取输入num 当大于100返回100 否则返回num
function test ( num ) {
return num < 100 ? num : 100 ;
}
function test ( num ) {
switch ( num < 100 ) {
case true :
return num
case false :
return 100 ;
}
}
function test ( num ) {
return Math . min ( num , 100 ) ;
}
function test ( num ) {
var tmp = num > 100 && 100 ;
return tmp || num
}
function test ( num ) {
var tmp = num + '' ;
for ( var i = 2 ; i < num . length && num > 0 ; ) {
return 100
}
return num ;
}
function test ( num ) {
var arr = [ num , 100 ] ;
arr . sort ( function ( num1 , num2 ) {
return num1 - num2 ;
} )
return arr [ 0 ]
}
function test ( num ) {
var json = { foo : 'bar' }
var tmp = num > 100 || json ;
for ( var i in tmp ) {
return 100
}
return num
}
如果觉得不错, 记得点星哦, 谢谢啦. 大家的鼓励才是我继续努力的最大动力