前端如何应对笔试算法题?(用node编程)

摘要:
我们在前端使用算法用nodeJ编写算法问题的地方不多,但为了校对笔试,我们必须练习算法问题!最后,我下定决心解决这个算法问题。我发现js不能像c语言那样单独构建输入和输出流。事实上,node也可以帮助我们完成它!此外,编写的测试支持使用nodeJs,这实际上是使用JS编程,只使用node的一些输入和输出流方法。最后,给出了一个前端算法问题的例子:问题:输入N个数以找到这N个数的最大值和最小值。每个数字的绝对值不超过1000000。

用nodeJs写算法题

咱们前端使用算法的地方不多,但是为了校招笔试,不得不针对算法题去练习呀!

好不容易下定决心 攻克算法题.发现js并不能像c语言一样自建输入输出流。只能回去学习c语言了吗?其实不用,node也能很好帮助我们完成!且笔试都支持用nodeJs,实际上就是用JS编程,只是用到了node的一些输入输出流方法。
前端如何应对笔试算法题?(用node编程)第1张

我们看看最简单的使用模板:(转载)

var readline = require('readline');

rl = readline.createInterface({
    input: process.stdin,
    output: process.stdout
});

rl.on('line', function(data) {
    // 获取输入
    var inputs = data.trim().split(' ');

    // 处理
    var result = deal(inputs);

    // 输出结果
    console.log(result);
});


function deal(inputs) {
    var result = '';

    // dosomething

    return result;
}

这套简单的模板就能解决一般的算法题!最后放上一个前端算法题例子:
题目:输入N个(N<=10000)数字,求出这N个数字中的最大值和最小值。每个数字的绝对值不大于1000000。

var readline = require('readline');
var rl = readline.createInterface({
    input:process.stdin,
    output:process.stdout,
});
var num = 0;
 
rl.on('line',function(input){
    if(num==0){
        num = input.trim();
    }
    else{
        var iptArr = input.split(' ');
        if(iptArr.length==num){
            var maxNum = Math.max.apply(null,iptArr);
            var minNum = Math.min.apply(null,iptArr);
            var result = maxNum + ' ' + minNum;
            console.log(result);
            return result;
        }
    }
})
//在终端输入
node max_min        //文件名
5                    //输入N个数的数量
12 18 5 20 10        //N个数
20 5                //返回结果

前端如何应对笔试算法题?(用node编程)第2张

node在算法题的更多使用方法请看:https://www.cnblogs.com/floor/p/6667059.html
前端面试常见算法题请看这:http://web.jobbole.com/88471/

免责声明:文章转载自《前端如何应对笔试算法题?(用node编程)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇扫码枪扫码触发接口传递参数(实例)使用Mybatis Generator自动生成代码下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Java同步数据结构之LinkedBlockingDeque

前言 前面介绍完了队列Queue/BlockingQueue的实现类,接下来介绍双端队列Deque/BlockingDeque的实现类之一LinkedBlockingDeque,它是一种基于链表的可选容量的同时支持FIFO、LIFO的阻塞双端队列。 比起前面介绍的队列实现中的节点都有一个指向下一个节点的next字段引用,双端队列为了能够实现能够从尾部添加元...

node 升级

升级Node后,执行npm install出现以下错误: DLCM50893462A:user-dashboard i318043$ npm installnpm ERR! Darwin 15.6.0npm ERR! argv "/usr/local/Cellar/node/5.6.0/bin/node" "/usr/local/bin/npm" "ins...

nodejs学习笔记三——nodejs使用富文本插件ueditor

  在做自己的nodejs项目的时候遇到需要使用ueditor。原来下载的是ueditor的jsp版本。目录如下     在ueditor.config.js中有配置服务器home路径(这个home路径能找到ueditor文件夹,可以使用这个路径访问ueditor内的静态资源,比如我的top.ctx为http://localhost:8080,那么我可以通...

Ogre2.0 全新功能打造新3D引擎

不知当初是在那看到,说是Ogre2.0浪费了一个版本号,当时也没多想,以为没多大更新,一直到现在想做一个编辑器时,忽然想到要看下最新版本的更新,不看不知道,一看吓一跳,所以说,网络上的话少信,你不认识别人,别人张嘴就来,对别人也没损失,还可以装B下,靠. 从现在Ogre2.1的代码来看,大约总结下,更新包含去掉过多的设计模式,SoA的数据结构(用于SIMD...

Node 之URL模块

首先在控制台(终端)开启Node模式,并打印出url来看一下:   从图中可以看出,它有 Url、parse、resolve、resolveObject、format、URL、URLSearchParams、domainToASCII、domainToUnicode 这么多模块。 那么这些模块有什么用呢? 我们来看看最终的效果: 首先输入http://lo...

VSCode 启动 Vue 项目 npm install 报错

1. 报错后,查看了版本。 查看node版本:node -v 查看npm版本:npm -v 查看Augular版本:ng --version 2. 感觉 Augular CLI版本太低,使用以下方法升级到最新版本: 》 npm uninstall -g @angular/cli 》 npm cache verify (或 npm cache clean -...