剑指offo记录

时间:2020-05-26
本文章向大家介绍剑指offo记录,主要包括剑指offo记录使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

一、二维数组中的查找

在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。

function Find(target, array)
{
    // write code here
    for(var i = 0; i < array.length; i++){
        for(var j = 0; j < array[i].length; j++){
            if(array[i][j] == target){
                return true
            }
        }
    }

}

上面内容没有啥好说的的,循环查看存不存在。

二、替换空格

请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。

function replaceSpace(str)
{
    return str.replace(/\s/g,"%20")
}

上面内容是正则匹配全局匹配空格,替换为%20

三、从尾到头打印链表

输入一个链表,按链表从尾到头的顺序返回一个ArrayList。

function printListFromTailToHead(head)
{
    var arr = [];
    while(head){
        arr.unshift(head.val)
        head = head.next
    }
    
    return arr
    
}

上面的内容,创建一个数组,我们在判断这个链表是不是还存在,存在就往数组的前面添加内容。最后返回数组

四、用两个栈实现队列

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

var inStack = [],
    outStack = [];
function push(node) {
    inStack.push(node);
}
function pop() {
    if (!outStack.length) {
        while (inStack.length) {
            outStack.push(inStack.pop());
        }
    }
    return outStack.pop();
}

上面的内容我就不多说了,占时我也不是横清楚。

原文地址:https://www.cnblogs.com/chenyudi/p/12966923.html