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;
}
}