• 算法| ss 逻辑问题


      1. 最长公共前缀
    • 605.种花问题
      1. 比较版本号

    14. 最长公共前缀

    /**
     * @param {string[]} strs
     * @return {string}
     */
    var longestCommonPrefix = function (strs) {
      let ans = strs[0];
      for (let i = 1; i < strs.length; i++) {
        let j = 0;
        for (; j < strs[i].length && j < ans.length; j++) {
          if (ans[j] !== strs[i][j]) {
            break;
          }
        }
        ans = ans.slice(0, j);
        if (ans === "") return ans;
      }
      //   console.log(ans);
      return ans;
    };
    longestCommonPrefix(["flower", "flow", "flight"]);
    longestCommonPrefix(["dog", "racecar", "car"]);
    longestCommonPrefix(["ab", "a"]);
    // 输入:strs = ["flower","flow","flight"]
    // 输出:"fl"
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25

    605.种花问题

    /**
     * @param {number[]} flowerbed
     * @param {number} n
     * @return {boolean}
     */
    // 思路
    // 在数组的前后补0,这样不用考虑边界了
    // 遍历数组, 连续有3个0的 种花count++
    var canPlaceFlowers = function (arr, n) {
      arr.push(0);
      arr.unshift(0);
      let count = 0;
      for (let i = 0; i < arr.length; i++) {
        if (arr[i] == 0 && arr[i - 1] == 0 && arr[i + 1] === 0) {
          count += 1;
          arr[i] = 1;
        }
      }
      console.log(count);
      return n <= count;
    };
    canPlaceFlowers([1, 0, 0, 0, 1], 1);
    // 输入:flowerbed = [1,0,0,0,1], n = 1
    // 输出:true
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25

    165. 比较版本号

    /**
     * @param {string} version1
     * @param {string} version2
     * @return {number}
     */
    // 思路
    // 分割字符串得到对应的数组
    // while循环  shift拿出头个元素,比较大小
    // 若arr1 arr2有剩余则分别判断是否都是为0 还是1 或-1
    var compareVersion = function (version1, version2) {
      const arr1 = version1.split(".").map(Number);
      const arr2 = version2.split(".").map(Number);
      while (arr1.length && arr2.length) {
        let a1 = arr1.shift();
        let a2 = arr2.shift();
        if (a1 > a2) return 1;
        if (a1 < a2) return -1;
      }
    
      if (arr1.length) {
        return arr1.every((item) => item === 0) ? 0 : 1;
      }
      if (arr2.length) {
        return arr2.every((item) => item === 0) ? 0 : -1;
      }
      return 0;
    };
    
    console.log(compareVersion("1.01", "1.001"));
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
  • 相关阅读:
    经典文献阅读之--SuMa++
    人工智能知识全面讲解: 图像识别的准备工作
    瞅一瞅JUC提供的限流工具Semaphore
    Java运算符
    前端初始化项目切换镜像命令
    解决Error(s) in loading state_dict for *** :
    共享打印机连接报错问题汇总
    ChatGPT私有数据结合有什么效果?它难吗?
    FRP进阶篇之安全认证
    数据结构day42
  • 原文地址:https://blog.csdn.net/shjavadown/article/details/137405152