数组-水平翻转-翻转
今天,投的某家公司HR发来一份题目,看了看题目,脑壳中缓缓冒出一个?
我应聘的不是前端吗?咋给我整算法题了?
最后因为第二题求最短排序连续子序列,就下面这链接的题,想不出来,又不想抄别人的,
而且3k的工资,还不一定通过面试,感觉不值得死那么多的脑细胞,所以放弃,
但第一题还是整出来了
第二题:
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/shortest-unsorted-continuous-subarray
第一题:
const Demo = () => {
// Test开头的都是测试数据
const Test1 = [[1,1,0],[1,0,1],[0,0,0]]; // 示例1
const Test2 = [[1,1,0,0],[1,0,0,1],[0,1,1,1],[1,0,1,0]]; // 示例2
// 根据题目说明,设定:
// 1.二维数组的行和列都是大于等于1,小于等于20;
// 2.数组里仅有 1 和 0;
const A1 = Test2;
const A2 = [];
// 水平翻转
for(let i = 0; i < A1.length; i++){
A2.push(A1[i].reverse());
}
// 反转
for(let a = 0; a < A2.length; a++){
for(let b = 0; b < A2[a].length; b++){
let num = A2[a][b];
if(num === 1){
A2[a][b] = 0;
}
if(num === 0){
A2[a][b] = 1;
}
}
}
console.log(A2);
}
Demo();
倒是蛮简单的。