一个twitter puddles的算法实现

简介:

今天发现了一个挺好玩的算法题,下面是它的算法描述,源自twitter的一道面试题

twitter puddles 算法描述


数字是根据一个数组内容来描述的,最后会根据每个数字的大小来模拟一道墙的高度,最后生成一面墙,问你,当下雨的时候,这面墙可以装多少水,以1为计数单位


其实这个原理比较简单,总共有下面几个要点:

  • 最左边和最右边肯定不能装水
  • 装水的高度依赖自身左右两侧内两个最大值其中的最小值

下面我们用js来简单的实现它

/**
*  计算以数组项为高度的墙能装多少水
*  数组例子 [2,5,1,2,3,4,7,7,6,9]
**/
function getWaterCounts(arg){
    var i = 0,
        j = 0,
        count = 0;
    // 第一项和最后一项都得排除
    for(i = 1; i < arg.length - 1; i++){
        var left = Math.max.apply(null, arg.slice(0, i + 1));
        var right = Math.max.apply(null, arg.slice(i, arg.length));
        var min = left >= right ? right : left;
        // 以左右两边最大值内小的为准
        // 假如当前值大于或者等于这个值什么都不做
        if(arg[i] < min){
            count += min - arg[i];
        }
    }
    console.log(count);
}
getWaterCounts([2,5,1,2,3,4,7,7,6,9]); // 11

总结

嘿嘿,实现是不是挺简单的,其实只要你愿意思考,用js可以实现很多好玩的东西.


目录
相关文章
|
7月前
|
算法 搜索推荐 数据安全/隐私保护
社交媒体算法
社交媒体算法
107 1
|
6月前
Twitter 应用的优缺点分析
Twitter 应用的优缺点分析
132 0
|
4月前
|
存储 人工智能 机器人
通过 OpenAI 和 Langchain 构建 Arxiv 论文摘要 Twitter 机器人
通过 OpenAI 和 Langchain 构建 Arxiv 论文摘要 Twitter 机器人
55 0
|
11月前
|
机器学习/深度学习 算法 Scala
Twitter推荐算法解读
最近 Twitter 开源了其最宝贵的财产——推荐算法!本文将带你了解 Twitter 是如何做内容推荐的。
610 0
Twitter推荐算法解读
|
11月前
|
算法 Java
白话Elasticsearch24- 深度探秘搜索技术之TF&IDF算法/向量空间模型算法/lucene的相关度分数算法
白话Elasticsearch24- 深度探秘搜索技术之TF&IDF算法/向量空间模型算法/lucene的相关度分数算法
62 0
DHL
|
算法 Java Android开发
Twitter 上有趣的代码
这是海外一位 Kotlin GDE 大佬,在 Twitter 上分享的一段代码,你能快速的说出正确的结果吗
DHL
137 0
Twitter 上有趣的代码
|
机器学习/深度学习 算法 搜索推荐
Twitter 算法开源究竟会是什么样的?
本文最初发布于 Travis Fischer 的个人博客。
336 0
Twitter 算法开源究竟会是什么样的?
|
算法 数据安全/隐私保护 数据中心
Google发布CityHash系列散列算法
Google发布了 CityHash系列字符串散列算法。今天发布的有两种算法:CityHash64 与 CityHash128。它们分别根据字串计算64和128位的散列值。这些算法不适用于加密,但适合用在散列表等处。
4531 0
|
算法 C#
谷歌百度以图搜图 "感知哈希算法" C#简单实现
/// /// 感知哈希算法 /// public class ImageComparer { /// /// 获取图片的Hashcode /// /// /// public static string GetImageHashCode(string imageName) { int width = 8; int height = 8; // 第一步 // 将图片缩小到8x8的尺寸,总共64个像素。
2137 0