数码资讯
javascript实现的一个例子
今天我发现了一个有趣的算法问题,下面是它的算法描述,来自twitter的采访。 Twitter水坑算法描述 先看一幅画 上图中的数字是根据数组的内容来描述的。最后,根据每一个数字的大小来模拟墙的高度。最后,会产生一堵墙,问你下雨时墙能容纳多少水,其中1是计算单位。 下面是水被填满后的一堵墙的出现。
选购提示
关注价格、性能、续航、售后和真实使用场景,理性比较后再下单。
今天我发现了一个有趣的算法问题,下面是它的算法描述,来自twitter的采访。
Twitter水坑算法描述
先看一幅画
上图中的数字是根据数组的内容来描述的。最后,根据每一个数字的大小来模拟墙的高度。最后,会产生一堵墙,问你下雨时墙能容纳多少水,其中1是计算单位。
下面是水被填满后的一堵墙的出现。
看了上面的图片后,感觉很有意思,下面是对它的算法实现的简单分析。
事实上,这个原则相对简单,主要有几点:
1。左边和右边一定没有水。
2。水的高度取决于其左右两侧两个最大值的最小值。
这里我们使用js来简单地实现它:
复制代码代码如下所示:
*计算有多少水可以用一个高数组项填充墙
*阵列实例2,5,1,2,3,4,7,7,6,9 } {
**
功能getwatercounts(arg){
var I=0,
j=0,
计数= 0;
第一个和最后一个项目被排除在外。
为(i = 1;i < arg.length - 1;i++){
VaR左= math.max.apply(null,arg.slice(0,i + 1));
VaR对= math.max.apply(null,arg.slice(我精。长度));
var右:左=左=右;
最大值的左、右两边较小。
如果当前值大于或等于该做什么的值
如果({ { } < <分钟){
计数=最小值;
}
}
console.log(计数);
}
getwatercounts({ 2,5,1,2,3,4,7,7,6,9 }); / / 11
总结
嘿嘿,实现不是很简单,其实只要你想,用js就能实现很多好玩的东西。
Twitter水坑算法描述
先看一幅画
上图中的数字是根据数组的内容来描述的。最后,根据每一个数字的大小来模拟墙的高度。最后,会产生一堵墙,问你下雨时墙能容纳多少水,其中1是计算单位。
下面是水被填满后的一堵墙的出现。
看了上面的图片后,感觉很有意思,下面是对它的算法实现的简单分析。
事实上,这个原则相对简单,主要有几点:
1。左边和右边一定没有水。
2。水的高度取决于其左右两侧两个最大值的最小值。
这里我们使用js来简单地实现它:
复制代码代码如下所示:
*计算有多少水可以用一个高数组项填充墙
*阵列实例2,5,1,2,3,4,7,7,6,9 } {
**
功能getwatercounts(arg){
var I=0,
j=0,
计数= 0;
第一个和最后一个项目被排除在外。
为(i = 1;i < arg.length - 1;i++){
VaR左= math.max.apply(null,arg.slice(0,i + 1));
VaR对= math.max.apply(null,arg.slice(我精。长度));
var右:左=左=右;
最大值的左、右两边较小。
如果当前值大于或等于该做什么的值
如果({ { } < <分钟){
计数=最小值;
}
}
console.log(计数);
}
getwatercounts({ 2,5,1,2,3,4,7,7,6,9 }); / / 11
总结
嘿嘿,实现不是很简单,其实只要你想,用js就能实现很多好玩的东西。
声明:本文内容用于数码产品信息整理与选购参考,具体价格、库存、售后政策以官方渠道和电商页面实时信息为准。