二维数组中的查找
在一个二维数组array中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。
[
[1,2,8,9],
[2,4,9,12],
[4,7,10,13],
[6,8,11,15]
]
给定 target = 7,返回 true。
给定 target = 3,返回 false。
0 <= array.length <= 500 0 <= array[0].length <= 500
// 因为数组都是从左到右,从上到下递增的,因此比较的时候是有规律的。
// 我们可以从数组的右上角开始进行比较。
// 分为以下两种情况:
// 1、当目标数字比右上角的数字小时;
// 因为右上角的数字是它那一列中最小的,那么目标数字一定比右上角那一列的数字都小。
// 就没有比较的必要了,因此,可以将比较的数字左移一排,继续进行比较。
// 2、当目标数字比右上角的数字大时;
// 右上角的数字是那一行中最大的,因此目标数字比哪一行的数字都大,那一行也没有继续比下去的必要了。
// 因此将右上角的数字下移一位,继续进行比较,直到找完或者找到为止。
function Find(target, array) {
const xLength = array[0].length
const yLength = array.length
for (let x = xLength - 1, y = 0; x >= 0 && y < yLength; ) {
if (array[y][x] > target) {
x--
} else if (array[y][x] < target) {
y++
} else {
return true
}
}
return false
}
替换空格
请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。
function replaceSpace( s ) {
// write code here
return s.split(" ").join("%20")
}
function replaceSpace( s ) {
// write code here
return s.replace(/ /g, '%20');
}