题型:20道选择题 + 3道编程题           选择题大杂烩,前端技术占比多一些!       编程题       感谢大佬把题目贴出来。       1. 修改字符串前大后小     思路:就是分别处理一下,前面的toUpperCase(),后面的toLowerCase();    let str = "ABCba",n = 3;console.log(str.substring(0, n).toUpperCase() + str.substring(n).toLowerCase());      2. 打印1-n^2       思路:自己先写几个找找规律,n为奇数,直接从1-n^2顺序打印,每行输出n个;n为偶数,直接从1-n^2顺序打印,每行输出n个,但是奇偶行的顺序得相反,比如n=2时应该是[[1,2],[4,3]],这个只要一行用push、一行用unshift就好了        function getArr(n) {  if(n % 2 === 1) {    let index = n, val = 1;    while(index) {      let arr = []      for(let i = 0; i < n; ++i) {        arr.push(val)        val++;      }      console.log(arr.join(' '));      index--    }  } else if(n % 2 === 0) {    let val = 1, index = n;    while (index) {      let arr = [];      for (let i = 0; i < n; ++i) {        if(index % 2 === 0) {          arr.push(val);        } else {          arr.unshift(val);        }        val++;      }      console.log(arr.join(" "));      index--;    }  }}getArr(4);               3. 长城数,8.20号网易也考了长城数,虽然不完全一样,但是思路有借鉴的地方。最终要保证奇、偶项分别相同,那么就用map记录下奇数项各个值的个数、偶数项各个值的个数,各自取个数最多的那个;注意,如果奇偶个数最多的数相同,就要考虑第二多的了,有一个要变为第二多的那个数,看操作谁的次数最少就用哪个。        function getTimes(arr) {  let oddMap = new Map(),    evenMap = new Map();  for(let i = 0; i < arr.length; i++) {    if(i % 2 === 0) {      oddMap.set(arr[i], (oddMap.get(arr[i]) || 0) + 1);    } else {    evenMap.set(arr[i], (evenMap.get(arr[i]) || 0) + 1);    }  }  // // 找出奇偶的第一和第二大  let [oddFirstNum, oddFirstCount, oddSecondNum, oddSecondCount] =    getValue(oddMap);    let [evenFirstNum, evenFirstCount, evenSecondNum, evenSecondCount] =      getValue(evenMap);  function getValue(map) {   let firstNum, firstCount = 0, secondNum, secondCount = 0;    for (let [item, value] of map) {      if (value >= firstCount) {        secondCount = firstCount;        firstCount = value;        secondNum = firstNum;        firstNum = item;      } else if (value < firstCount && value > secondCount) {        secondCount = value;        secondNum = item;      }    }    return [firstNum, firstCount, secondNum, secondCount]  }  // 最终要判断下奇偶最多的数是否相同  if (evenFirstNum !== oddFirstNum) {    return arr.length - oddFirstCount - evenFirstCount;  } else if (evenFirstNum === oddFirstNum) {    if (oddFirstCount - oddSecondCount >= evenFirstCount - evenSecondCount) {      return arr.length - oddFirstCount - evenSecondCount;    } else {      return arr.length - oddSecondCount - evenFirstCount;    }  }    }console.log(getTimes([1, 1, 4, 5, 1, 4])); // 3   
点赞 7
评论 2
全部评论

相关推荐

06-26 22:20
门头沟学院 Java
码农索隆:让你把简历发给她,她说一些套话,然后让你加一个人,说这个人给你改简历,然后开始卖课
我的求职精神状态
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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