我的刷题日记(1)

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

解析:拿到这个题我这样的菜鸟首先想到就是遍历

//假设有这样的一个数组
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;
}

你可能感兴趣的:(刷题日记)