美文网首页
看来的几道JS题目,听说是面试常见题(侵删)

看来的几道JS题目,听说是面试常见题(侵删)

作者: zackup | 来源:发表于2017-06-01 21:59 被阅读0次

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

思路:
观察这个二维数组的结构,从左到右递增,从上到下递增,理所应当,第一列最下端是一个比较合适的起始位置,这个还是比较容易理解的,如果 target 比之小,则往上移,如果 target 比之大,则向右移。

function Find(target, array)
{
    var rowCount = array.length-1;
    for(var i=rowCount,j=0; i>=0 && j<array[i].length;){
        if(target == array[i][j]){
            return true;
        }else if(target > array[i][j]){
            j++;
            continue;
        }else if(target < array[i][j]){
            i--;
            continue;
        }
    }
    return false;
}

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

思路:调用 replace 函数

function replaceSpace(str)
{
    var newstr;
    newstr=str.replace(/\s+?/g,"%20") // \s+? 能匹配到多数个空格,视作一个空格
    return newstr;
}

3.输入一个链表,从尾到头打印链表每个节点的值。

思路:定义一个数组,将链表的节点依次 push 进数组,将数组倒序输出

function printListFromTailToHead(head)  
{
    if(!head){return 0;}else{  
         var arr=new Array();  
         for(var q=head;q;q=q.next){  
             arr.push(q.val);  
         }  
     arr.reverse();  
     return arr;  
    }  
}

相关文章

网友评论

      本文标题:看来的几道JS题目,听说是面试常见题(侵删)

      本文链接:https://www.haomeiwen.com/subject/rrqyfxtx.html