1.在一個二維數(shù)組中跨释,每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序吹截。請完成一個函數(shù)瘦陈,輸入這樣的一個二維數(shù)組和一個整數(shù),判斷數(shù)組中是否含有該整數(shù)波俄。
思路:
觀察這個二維數(shù)組的結(jié)構(gòu)晨逝,從左到右遞增,從上到下遞增懦铺,理所應(yīng)當(dāng)捉貌,第一列最下端是一個比較合適的起始位置,這個還是比較容易理解的冬念,如果 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:請實現(xiàn)一個函數(shù),將一個字符串中的空格替換成 “%20”裆针。例如刨摩,當(dāng)字符串為 We Are Happy.則經(jīng)過替換之后的字符串為 We%20Are%20Happy。
思路:調(diào)用 replace 函數(shù)
function replaceSpace(str)
{
var newstr;
newstr=str.replace(/\s+?/g,"%20") // \s+? 能匹配到多數(shù)個空格世吨,視作一個空格
return newstr;
}
3.輸入一個鏈表澡刹,從尾到頭打印鏈表每個節(jié)點的值。
思路:定義一個數(shù)組耘婚,將鏈表的節(jié)點依次 push 進數(shù)組罢浇,將數(shù)組倒序輸出
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;
}
}