在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。
解析:拿到这个题我这样的菜鸟首先想到就是遍历
//假设有这样的一个数组
var array =[
[1,2,3],
[4,5,6],
[7,8,9]
]
//使用遍历和数组API就能得到想要的效果
function Find(target,array){
for(var i =0; i
遍历占用内存比较大,查找速度也是很慢的。这并不是性能优化的最佳方法。
有序数组的查找方法我们首先就要想到二分查找法,这个方法会缩小查找的时间
有这么一个数组
var array =[
[1,2,3],
[4,5,6],
[7,8,9]
]
//首先找到数字7 ,比较target与7的大小。如果target>7,向右查找。小于7就像上查找
function Find(target,array){
var x =array.length-1;
var y = 0;
while(x >=0 && y < array[0].length){
if(target === array[x][y]){
return true;
}else if(target < array[x][y]){
x--;
}else{
y++;
}
}
return false;
}
请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。
解析:
方法一:使用字符串API split(),和数组API join()
function replaceSpace(str){
var arr = str.split(" "); //以空格为参数将str变成一个数组
var string = arr.join("%20");
return string;
}