牛客网剑指offer刷编程题

牛客网剑指offer刷编程题

技术杂谈小彩虹2021-08-25 1:34:30120A+A-

这里只要求能实现即可,不要求性能有多好

斐波那契数列

function Fibonacci(n) {
    if(n<0){
        return;
    }
    else if(n == 0) {
        return 0;
    }else if(n == 1 || n == 2){
        return 1;
    }else{
        return Fibonacci(n-1) + Fibonacci(n-2);
    }
}

这里只需要注意:

  1. 递归出口;
  2. 题目要求:第0项为0,第1项是1

用两个栈实现队列 (不懂)

用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。

let stack1=[],
    stack2=[];// 辅助作用
function push(node) {
    stack1.push(node);
}
function pop() {
    if(stack2.length===0){
        while(stack1.length){
            stack2.push(stack1.pop());
        }
    }
    return stack2.pop();
}

简单方法:一个栈搞定

var stack1 = [];
var stack2 = [];
function push(node) {
    stack1.push(node);
}
function pop() {
    return stack1.shift()
}

表示数值的字符串

请实现一个函数用来判断字符串是否表示数值(包括整数和小数)。例如,字符串"+100","5e2","-123","3.1416"和"-1E-16"都表示数值。 但是"12e","1a3.14","1.2.3","+-5"和"12e+4.3"都不是。

/** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param str string字符串 * @return bool布尔型 */
function isNumeric( str ) {
    let val = Number(str);
    if( Number.isNaN(val)) 
         return false;
    return true
}
module.exports = {
    isNumeric : isNumeric
};

数组中重复的数字

在一个长度为n的数组里的所有数字都在0到n-1的范围内。 数组中某些数字是重复的,但不知道有几个数字是重复的。也不知道每个数字重复几次。请找出数组中任一一个重复的数字。 例如,如果输入长度为7的数组[2,3,1,0,2,5,3],那么对应的输出是2或者3。存在不合法的输入的话输出-1

/** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param numbers int整型一维数组 * @return int整型 */
function duplicate( numbers ) {
    // write code here
    let n = numbers.length;
    for(let i = 0; i < n; i++) {
      while(numbers[i] !== i) {
            if (numbers[i] === numbers[numbers[i]]) return numbers[i];
            const temp = numbers[numbers[i]];
            numbers[numbers[i]] = numbers[i];
            numbers[i] = temp;
        }
    }
    return -1;
}
module.exports = {
    duplicate : duplicate
};

点击这里复制本文地址 以上内容由权冠洲的博客整理呈现,请务必在转载分享时注明本文地址!如对内容有疑问,请联系我们,谢谢!

支持Ctrl+Enter提交

联系我们| 本站介绍| 留言建议 | 交换友链 | 域名展示
本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除

权冠洲的博客 © All Rights Reserved.  Copyright quanguanzhou.top All Rights Reserved
苏公网安备 32030302000848号   苏ICP备20033101号-1
本网站由 提供CDN/云存储服务

联系我们