Lv.1
在 【神奇代码岛】为实体的位置重新赋值,居然…… 中回复
就这么说矩阵就好比一个排序算法
排序有很多无数先人做出了属于他们的算法,拿一个最简单的例子:
function selectionSort(arr) {
var len = arr.length;
var minIndex, temp;
for (var i = 0; i < len - 1; i++) {
minIndex = i;
for (varj = i + 1; j < len; j++) {
if (arr[j] < arr[minIndex]) { // 寻找最小的数
minIndex = j; // 将最小数的索引保存
}
}
temp = arr[i];
arr[i] = arr[minIndex];
arr[minIndex] = temp;
}
return arr;
}
这个原理就是讲一大堆数组array依次检测,然后再取小的挪到前列,这个适合排行榜,但有sort函数了一般人都不用这个,这个最多就是地形生成排序
第二个就是你说的矩阵

代码:
/**
* 思路1 非原地算法,
* 第一次遍历将值为0的横坐标与纵坐标存入表中,
* 第二次遍历将横坐标与纵坐标对应的行与列置为0
* @param matrix
*/
var setZeroes = function (matrix) {
var s1 = new Set()
var s2 = new Set()
for (var i = 0; i < matrix.length; i++) {
for (var j = 0; j < matrix[i].length; j++) {
if (matrix[i][j] === 0) {
s1.add(i);
s2.add(j);
}
}
}
for (var i = 0; i < matrix.length; i++) {
if (s1.has(i)) {
matrix[i] = new Array(matrix[i].length).fill(0)
continue
}
for (var j = 0; j < matrix[i].length; j++) {
if (s2.has(j)) {
matrix[i][j] = 0
}
}
}
return matrix
};
var result = setZeroes([
[0, 1, 2, 0],
[3, 4, 5, 2],
[1, 3, 1, 5]
])
console.log(result)
2023-03-25T23:48:58 点赞:0
在 【神奇代码岛】一个奇妙的想法(吉吉快来啊()))) 中回复
6,其实当初鸽者就向我提出把岛三的天空给替换了,当初我脑海第一个想法就是把图片替换掉,但经过我无限的努力,发现并不可以,有可能我爬虫技术太差(),但就算替换掉等你刷新后他没准就会变原样了,在说你发布后,游玩段也会随之改变么
2023-04-01T20:59:26 点赞:0