上一主题 下一主题
ScriptCat,新一代的脚本管理器脚本站,与全世界分享你的用户脚本油猴脚本开发指南教程目录
返回列表 发新帖
楼主: 李恒道 - 

【当前排名67359】挑战leetcode进入前1w名

[复制链接]
  • TA的每日心情
    擦汗
    2024-12-18 11:32
  • 签到天数: 194 天

    [LV.7]常住居民III

    731

    主题

    6235

    回帖

    6981

    积分

    管理员

    非物质文化遗产社会摇传承人

    积分
    6981

    荣誉开发者喜迎中秋油中2周年生态建设者

    发表于 2024-12-18 18:51:00 | 显示全部楼层

    https://leetcode.cn/problems/count-submatrices-with-all-ones/submissions/587906655/
    这题dp真的很有意思
    简单来说将第一个计算只有一行的,第二次计算两行的,第三次三行的

    var numSubmat = function (mat) {
      let total = 0;
      for (let col = 0; col < mat.length; col++) {
        for (let index = col; index < mat.length; index++) {
          let ans = 0;
          for (let indey = 0; indey < mat[0].length; indey++) {
            const num = mat[index][indey];
            if (num == 0) {
              ans = 0;
            } else {
              ans = ans + 1;
            }
            total += ans;
          }
        }
        for (let index = mat.length - 1; index > 0; index--) {
          for (let indey = 0; indey < mat[0].length; indey++) {
            mat[index][indey] &= mat[index - 1][indey];
          }
        }
      }
    
      return total;
    };
    混的人。
    ------------------------------------------
    進撃!永遠の帝国の破壊虎---李恒道

    入驻了爱发电https://afdian.com/a/lihengdao666
    回复
    订阅

    使用道具 举报

  • TA的每日心情
    擦汗
    2024-12-18 11:32
  • 签到天数: 194 天

    [LV.7]常住居民III

    731

    主题

    6235

    回帖

    6981

    积分

    管理员

    非物质文化遗产社会摇传承人

    积分
    6981

    荣誉开发者喜迎中秋油中2周年生态建设者

    发表于 2024-12-18 19:07:39 | 显示全部楼层

    https://leetcode.cn/problems/string-to-integer-atoi/submissions/587908846/
    没去凹边界极大值情况
    讲道理不太喜欢那种模板题

    var myAtoi = function (s) {
      let result = 0;
      let hasPrefix = "";
      for (let index = 0; index < s.length; index++) {
        const charCode = s[index].charCodeAt();
        const char = s[index];
        if (char == " ") {
          if(hasPrefix!==""){
            break;
          }
          continue;
        }
        if (char == "+" || char == "-") {
          if (hasPrefix === "") {
            hasPrefix = char == "+" ? 1 : -1;
          } else {
            break;
          }
          continue;
        }
        if (charCode >= 48 && charCode <= 57) {
          result = result * 10 + (charCode - 48);
          if (hasPrefix === "") {
            hasPrefix = 1;
          }
        } else {
          break;
        }
        if(result>(2**31)&&hasPrefix==-1){
          return (2**31)*-1
        }
        if(result>(2**31-1)&&hasPrefix==1){
          return (2**31-1)
        }
      }
      return result * (hasPrefix === "" ? 1 : hasPrefix);
    };
    混的人。
    ------------------------------------------
    進撃!永遠の帝国の破壊虎---李恒道

    入驻了爱发电https://afdian.com/a/lihengdao666
    回复

    使用道具 举报

  • TA的每日心情
    擦汗
    2024-12-18 11:32
  • 签到天数: 194 天

    [LV.7]常住居民III

    731

    主题

    6235

    回帖

    6981

    积分

    管理员

    非物质文化遗产社会摇传承人

    积分
    6981

    荣誉开发者喜迎中秋油中2周年生态建设者

    发表于 2024-12-19 17:20:01 | 显示全部楼层

    https://leetcode.cn/problems/sum-of-subarray-minimums/submissions/588105406/
    脑子没想明白
    手凹过去了
    我草

    var sumSubarrayMins = function (arr) {
        const left = new Array(arr.length).fill(-1)
        const right = new Array(arr.length).fill(-1)
        const st = [];
        for (let i = 0; i < arr.length; i++) {
            const x = arr[i];
            while (st.length && x <= arr[st[st.length - 1]]) {
                st.pop();
            }
            if (st.length) {
                left[i] = st[st.length - 1];
            }
            st.push(i);
        }
        st.length = 0;
        for (let i = arr.length - 1; i >= 0; i--) {
            const x = arr[i];
            while (st.length && x < arr[st[st.length - 1]]) {
                st.pop();
            }
            if (st.length) {
                right[i] = st[st.length - 1];
            }
            st.push(i);
        }
        let ans = BigInt(0);
        for (let i = 0; i < arr.length; i++) {
            let total = 1;
            const l = left[i];
            const r = right[i];
            let leftLen=0;
            if (l !== -1) {
                leftLen += i - l - 1
            } else {
                leftLen += i
            }
            let rightLen=0;
            if (r !== -1) {
                rightLen += r - i - 1
            } else {
                rightLen += arr.length - i - 1
            }
            if (leftLen!==0 && rightLen!==0) {
                total += leftLen * rightLen
            }
            total+=leftLen+rightLen
            ans +=( BigInt(total) * BigInt(arr[i]))% BigInt(10**9+7)
            ans =ans %BigInt(10**9+7)
    
        }
        return Number(ans);
    }
    混的人。
    ------------------------------------------
    進撃!永遠の帝国の破壊虎---李恒道

    入驻了爱发电https://afdian.com/a/lihengdao666
    回复

    使用道具 举报

  • TA的每日心情
    擦汗
    2024-12-18 11:32
  • 签到天数: 194 天

    [LV.7]常住居民III

    731

    主题

    6235

    回帖

    6981

    积分

    管理员

    非物质文化遗产社会摇传承人

    积分
    6981

    荣誉开发者喜迎中秋油中2周年生态建设者

    发表于 2024-12-19 17:38:28 | 显示全部楼层

    https://leetcode.cn/problems/surrounded-regions/submissions/588110103/?envType=study-plan-v2&envId=top-interview-150
    一波秒

    var solve = function (board) {
        const dfs = (x, y, target, replace) => {
            if (x < 0 || x >= board.length || y < 0 || y >= board[0].length) {
                return
            }
            if (board[x][y] == target) {
                board[x][y] = replace
                dfs(x + 1, y, target, replace)
                dfs(x - 1, y, target, replace)
                dfs(x, y + 1, target, replace);
                dfs(x, y - 1, target, replace)
            }
        }
        for (let index = 0; index < board[0].length; index++) {
            if (board[0][index] == "O") {
                dfs(0, index, "O", "Z")
            }
            if (board[board.length - 1][index] == "O") {
                dfs(board.length - 1, index, "O", "Z")
            }
        }
        for (let index = 0; index < board.length; index++) {
            if (board[index][0] == "O") {
                dfs(index, 0, "O", "Z")
            }
            if (board[index][board[0].length - 1] == "O") {
                dfs(index, board[0].length - 1, "O", "Z")
            }
        }
        for (let index = 0; index < board.length; index++) {
            for (let indey = 0; indey < board[0].length; indey++) {
                if (board[index][indey] == "O") {
                    dfs(index, indey, "O", "X")
                }
            }
        }
        for (let index = 0; index < board.length; index++) {
            for (let indey = 0; indey < board[0].length; indey++) {
                if (board[index][indey] == "Z") {
                    dfs(index, indey, "Z", "O")
                }
            }
        }
    
    };
    混的人。
    ------------------------------------------
    進撃!永遠の帝国の破壊虎---李恒道

    入驻了爱发电https://afdian.com/a/lihengdao666
    回复

    使用道具 举报

  • TA的每日心情
    擦汗
    2024-12-18 11:32
  • 签到天数: 194 天

    [LV.7]常住居民III

    731

    主题

    6235

    回帖

    6981

    积分

    管理员

    非物质文化遗产社会摇传承人

    积分
    6981

    荣誉开发者喜迎中秋油中2周年生态建设者

    发表于 2024-12-19 17:52:59 | 显示全部楼层

    https://leetcode.cn/problems/find-indices-of-stable-mountains/submissions/588113165/
    简单题

    var stableMountains = function(height, threshold) {
        let left=height[0];
        let ans=[]
        for (let index = 1; index < height.length; index++) {
            if(left>threshold){
                ans.push(index)
            }
            left=height[index]
        }
        return ans
    };
    混的人。
    ------------------------------------------
    進撃!永遠の帝国の破壊虎---李恒道

    入驻了爱发电https://afdian.com/a/lihengdao666
    回复

    使用道具 举报

  • TA的每日心情
    擦汗
    2024-12-18 11:32
  • 签到天数: 194 天

    [LV.7]常住居民III

    731

    主题

    6235

    回帖

    6981

    积分

    管理员

    非物质文化遗产社会摇传承人

    积分
    6981

    荣誉开发者喜迎中秋油中2周年生态建设者

    发表于 2024-12-19 18:35:28 | 显示全部楼层

    https://leetcode.cn/problems/game-of-life/submissions/588119767/?envType=study-plan-v2&envId=top-interview-150
    位运算题
    秒了

    var gameOfLife = function (board) {
        const getNear = (x, y) => {
            const getPos = (x, y) => {
                if (x < 0 || x >= board.length || y < 0 || y > board[0].length) {
                    return 0
                }
                return ((board[x][y] & 1) == 1) ? 1 : 0
            }
            return getPos(x + 1, y) + getPos(x - 1, y) + getPos(x, y + 1) + getPos(x, y - 1) +
                getPos(x - 1, y - 1) + getPos(x - 1, y + 1) + getPos(x + 1, y - 1) + getPos(x + 1, y + 1)
        }
        for (let index = 0; index < board.length; index++) {
            for (let indey = 0; indey < board[0].length; indey++) {
                let status = board[index][indey];
                const count = getNear(index, indey)
                if (status == 1) {
                    //活细胞
                    if (count == 2 || count == 3) {
                        status = status | (1 << 1)
                    }
                } else {
                    if (count == 3) {
                        status = status | (1 << 1)
                    }
                }
                board[index][indey] = status
            }
        }
        for (let index = 0; index < board.length; index++) {
            for (let indey = 0; indey < board[0].length; indey++) {
                board[index][indey] = (board[index][indey] >> 1)
            }
        }
    };
    混的人。
    ------------------------------------------
    進撃!永遠の帝国の破壊虎---李恒道

    入驻了爱发电https://afdian.com/a/lihengdao666
    回复

    使用道具 举报

  • TA的每日心情
    擦汗
    2024-12-18 11:32
  • 签到天数: 194 天

    [LV.7]常住居民III

    731

    主题

    6235

    回帖

    6981

    积分

    管理员

    非物质文化遗产社会摇传承人

    积分
    6981

    荣誉开发者喜迎中秋油中2周年生态建设者

    发表于 2024-12-19 19:02:33 | 显示全部楼层

    https://leetcode.cn/problems/path-sum/submissions/588123625/?envType=study-plan-v2&envId=top-interview-150
    简单题,秒了

    var hasPathSum = function (root, targetSum) {
        if (root === null) {
            return false
        }
        const dfs = (node, val) => {
            val = val - node.val;
            if (node.left == null && node.right == null) {
                return val == 0
            }
            return (node.left && dfs(node.left, val)) || (node.right && dfs(node.right, val))||false
        }
        return dfs(root, targetSum)
    };
    混的人。
    ------------------------------------------
    進撃!永遠の帝国の破壊虎---李恒道

    入驻了爱发电https://afdian.com/a/lihengdao666
    回复

    使用道具 举报

  • TA的每日心情
    擦汗
    2024-12-18 11:32
  • 签到天数: 194 天

    [LV.7]常住居民III

    731

    主题

    6235

    回帖

    6981

    积分

    管理员

    非物质文化遗产社会摇传承人

    积分
    6981

    荣誉开发者喜迎中秋油中2周年生态建设者

    发表于 2024-12-20 16:21:03 | 显示全部楼层

    https://leetcode.cn/problems/minimum-length-of-anagram-concatenation/submissions/588290954/
    这题写一半卡住了
    边界没搞明白
    mark一下

    const check = (str, len) => {
        let arr1 = new Array(26).fill(0)
        for (let index = 0; index < str.length; index += len) {
            const arr2 = new Array(26).fill(0)
            for (let pos = index; pos < index + len; pos++) {
                arr2[str[pos].charCodeAt() - 97]++
            }
            const result = arr2.every((val, index) => arr1[index] == val)
            if(index==0||result==true){
                arr1=arr2
            }else{
                return false
            }
        }
        return true
    }
    var minAnagramLength = function (s) {
        for (let index = 1; index < s.length; index++) {
            if (s.length % (index) !== 0) {
                continue
            }
            if (check(s, index)) {
                return index
            }
        }
        return s.length
    };
    混的人。
    ------------------------------------------
    進撃!永遠の帝国の破壊虎---李恒道

    入驻了爱发电https://afdian.com/a/lihengdao666
    回复

    使用道具 举报

  • TA的每日心情
    擦汗
    2024-12-18 11:32
  • 签到天数: 194 天

    [LV.7]常住居民III

    731

    主题

    6235

    回帖

    6981

    积分

    管理员

    非物质文化遗产社会摇传承人

    积分
    6981

    荣誉开发者喜迎中秋油中2周年生态建设者

    发表于 2024-12-20 16:28:53 | 显示全部楼层

    https://leetcode.cn/problems/single-number-ii/submissions/588293666/?envType=study-plan-v2&envId=top-interview-150
    秒了

    var singleNumber = function (nums) {
        let num = 0
        for (let index = 0; index < 32; index++) {
            let total = 0;
            for (let indey = 0; indey < nums.length; indey++) {
                const num = nums[indey];
                total += ((num & (1 << index)) == 0) ? 0 : 1
            }
            num=num|((total%3)<<index)
        }
        return num
    };
    
    混的人。
    ------------------------------------------
    進撃!永遠の帝国の破壊虎---李恒道

    入驻了爱发电https://afdian.com/a/lihengdao666
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2024-11-21 13:37
  • 签到天数: 213 天

    [LV.7]常住居民III

    307

    主题

    4287

    回帖

    4131

    积分

    管理员

    积分
    4131

    管理员荣誉开发者油中2周年生态建设者喜迎中秋油中3周年挑战者 lv2

    发表于 2024-12-20 16:31:59 | 显示全部楼层
    有排名了吗?
    上不慕古,下不肖俗。为疏为懒,不敢为狂。为拙为愚,不敢为恶。
    回复

    使用道具 举报

    发表回复

    本版积分规则

    快速回复 返回顶部 返回列表