日常刷题0x16之未出新手村

86 阅读1分钟

如果不小心网友来到了这里请网友自动飘走,浪费你们时间表示歉意。该系列博客的目的是:想作为自律工具和朋友一起每天刷几道题作为打卡督促的功能,没有什么可参考学习的东西,也不是刷博客量充大佬的目的

题号:73
//遍历暴力解法
var setZeroes = function (matrix) {

    for (let i = 0; i < matrix.length; i++) {
        for (let j = 0; j < matrix[0].length; j++) {
            let ele = matrix[i][j]
            if (ele === 0) {
                for (let m = 0; m < matrix[0].length; m++) {
                    if (matrix[i][m] != 0) {
                        matrix[i][m] = "K"
                    }
                }
                for (let n = 0; n < matrix.length; n++) {
                    if (matrix[n][j]  != 0) {
                        matrix[n][j] = "K"
                    }
                }
            }
        }
    }
    for (let i = 0; i < matrix.length; i++) {
        for (let j = 0; j < matrix[0].length; j++) {
            if (matrix[i][j] === "K") {
                matrix[i][j] = 0
            }
        }
    }
    console.log("88");
};
题号:279
//背包问题
var numSquares = function (n) {
    let dptable = [0]//表示正整数i符合题意的最小数量
    for (let i = 0; i <= n; i++) {//0到n的正整数
        for (let j = 1; j * j <= i; j++) {//在正整数i的时候可以选择的平方数
            if (dptable[i]) {
                dptable[i] = Math.min(dptable[i - j * j] + 1, dptable[i])
            } else {
                dptable[i] = dptable[i - j * j] + 1
            }
        }
    }
    return dptable[n]
};
题号:125
//双指针
var isPalindrome = function (s) {
    let left = 0, right = s.length - 1
    while (left < right) {
        while (left < s.length) {
            if (isLetterOrNumber(s[left].toLowerCase())) {
                break
            }
            left++
        }
        while (right >= 0) {
            if (isLetterOrNumber(s[right].toLowerCase())) {
                break
            }
            right--
        }
        if (left < right) {
            if (s[left].toLowerCase() === s[right].toLowerCase()) {
                left++
                right--
            }
            else {
                return false
            }
        }
    }
    return true
 };
function isLetterOrNumber(char) {
    if ((char >='a'&& char <= 'z') || (char >='A'&& char <= 'Z') || ['0','1','2','3','4','5','6','7','8','9'].includes(char)) {
        return true
    }
    return false
}