栈
leetCode
题目编号:20
有效的括号
解法
/**
* @param {string} s
* @return {boolean}
*/
var isValid = function(s) {
if(s === '') return true;
var stack = [];
var arr = s.split('');
arr.forEach(function (item) {
// 当前栈顶部元素
var stackTop = stack[stack.length - 1];
if ((stackTop === '(' && item === ')') || (stackTop === '{' && item === '}') || (stackTop === '[' && item === ']')) {
stack.pop();
} else {
stack.push(item);
}
});
return stack.length === 0;
};
深度优先搜索算法
leetCode
题目编号:200
岛屿数量
解法
/**
* @param {character[][]} grid
* @return {number}
*/
const numIslands = (grid) => {
let count = 0
for (let i = 0; i < grid.length; i++) {
for (let j = 0; j < grid[0].length; j++) {
if (grid[i][j] === '1') {
count++
turnZero(i, j, grid)
}
}
}
return count
}
function turnZero(i, j, grid) {
if (i < 0 || i >= grid.length || j < 0 || j >= grid[0].length || grid[i][j] === '0') return
grid[i][j] = '0'
turnZero(i, j + 1, grid)
turnZero(i, j - 1, grid)
turnZero(i + 1, j, grid)
turnZero(i - 1, j, grid)
}
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!