题目整体来说不太难,都是用js写的,第二题只有node环境,没有v8的,处理输入还要麻烦一点(不知道node环境环境下acm模式的输入处理有没有好的方法呢)       1. 1、2、1、2 ....    1的左右必须为2才能乘积为偶数。模拟即可,只用考虑2比1多或者1比2多一个的时候,一直1、2、1、2... 模拟下去     let [a, b] = readline().split(' ').map(Number)// a个1, b个2, 1的左右必须是2let ans = new Array(a+b).fill(2);if(b >= a || a === b + 1) {    for(let i = 0; i < 2 * Math.min(b,a); i+=2) ans[i] = 1    if(a === b+1) ans[ans.length-1] = 1;    console.log(ans.join(" "));} else {     console.log(-1);}         2.  好数组,每次挑选k个删除              每次都挑选重复的删除,将删除的置为-1,使用js数组的indexOf,不是第一次出现的且不为-1的就是要删除的   删到全是不重复的,且还剩余删除次数时候就已经是好数组了 const readline = require('readline');const rl = readline.createInterface({    input: process.stdin,    output: process.stdout});let n, k;rl.on('line', function (line) {    let arr = line.split(' ').map(Number);     if(arr.length === 2) [n, k] = arr;    if(arr.length === n) {        for(let i = 0; i < parseInt(n / k); i++) {            //每次删除k个,每次挑选重复的删除            let cnt = k;            for(let j = 0; j < n; j++) {                if(arr [j] !== -1 && arr.indexOf(arr[j]) !== j) {                    arr[j] = -1;                    if(cnt-- === 1) break;                }            }        }        let flag = true;        for(let j = 0; j < n; j++)             if(arr [j] !== -1 && arr.indexOf(arr[j]) !== j) flag = false;        if(flag) console.log("Yes");        else console.log("No")    }});            3. 前k个排列的最小交换次数        找到前k个数里面大于k的,再找到后面数组里面小于等于k的,两两进行交换即可,交换的次数即为两者之间的距离  let [n, k] = readline().split(' ').map(Number);let arr = readline().split(' ').map(Number);let t1 = [], t2 = [];for(let i = 0; i < k; i++) if(arr[i] > k) t1.push(i);for(let j = k; j < n; j++) if(arr[j] <= k) t2.push(j);let ans = 0;for(let idx = 0; idx < t1.length; idx++) ans += (t2[idx] - t1[idx]);console.log(ans);  选择题里有几道没太搞明白的,一个是class静态函数,一个是promise返回值实现了then方法的,下来实际打印一遍发现都猜错了。。。。有无懂哥看下呢  class cls {    static func() {console.log(true);}}cls.func = function() {console.log(false);}cls.func() let thenable = {    then: function(resolve, reject) {        reject(1);    }}let p = new Promise((resolve, reject) => {    resolve(thenable);})p.then(val=>{console.log(val), err => {console.log(err+1)}})      
点赞 3
评论 3
全部评论

相关推荐

07-29 14:57
门头沟学院 Java
复盘中的钝角很想踢足...:别说ppt了,我简历去面试都不带的
点赞 评论 收藏
分享
写不来代码的小黑:这么小的城市能有做it的公司也不容易
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务