zoukankan      html  css  js  c++  java
  • LeetCode 算法题

    104. 二叉树的最大深度

    /**
     * Definition for a binary tree node.
     * function TreeNode(val) {
     *     this.val = val;
     *     this.left = this.right = null;
     * }
     */
    /**
     * @param {TreeNode} root
     * @return {number}
     */
    var maxDepth = function (root) {
        if (root == null) {
            return 0;
        } else {
            return Math.max(maxDepth(root.left), maxDepth(root.right)) + 1;
        }
    };

    1025. 除数博弈

    爱丽丝和鲍勃一起玩游戏,他们轮流行动。爱丽丝先手开局。

    最初,黑板上有一个数字 N 。在每个玩家的回合,玩家需要执行以下操作:

    选出任一 x,满足 0 < x < N 且 N % x == 0 。
    用 N - x 替换黑板上的数字 N 。
    如果玩家无法执行这些操作,就会输掉游戏。

    只有在爱丽丝在游戏中取得胜利时才返回 True,否则返回 false。假设两个玩家都以最佳状态参与游戏。

    A:奇数的约数肯定是奇数。 B:1是所有数的约数,2是所有偶数的约数。

    /**
     * @param {number} N
     * @return {boolean}
     */
    // N为偶数先手赢,N为奇数后手赢
    var divisorGame = function (N) {
    // 偶数的二进制最后一位为0,奇数的最后一位为1,直接拿N与1进行与运算
    return !(N & 1); };

    1290. 二进制链表转整数

    给你一个单链表的引用结点 head。链表中每个结点的值不是 0 就是 1。已知此链表是一个整数数字的二进制表示形式。

    请你返回该链表所表示数字的 十进制值 。

        /**
         * @param {ListNode} head
         * @return {number}
         */
        var getDecimalValue = function (head) {
          let current = head;
          let str = ''
          while (current) {
            str += current.val;
            current = current.next;
          }
          return parseInt(str, 2)
        };

    1295. 统计位数为偶数的数字

    给你一个整数数组 nums,请你返回其中位数为 偶数 的数字的个数。

        /**
         * @param {number[]} nums
         * @return {number}
         */
        var findNumbers = function (nums) {
          var r = nums.filter((num, i) => {
            var temp = num.toString().length;
            return temp % 2 == 0;
          })
          return r.length;
        };

    1365. 有多少小于当前数字的数字

    给你一个数组 nums,对于其中每个元素 nums[i],请你统计数组中比它小的所有数字的数目。

    换而言之,对于每个 nums[i] 你必须计算出有效的 j 的数量,其中 j 满足 j != i 且 nums[j] < nums[i] 。

    以数组形式返回答案。

        /**
         * @param {number[]} nums
         * @return {number[]}
         */
        //  循环数组,将每个num与nums中的数字进行比较
        //  将符合要求的数据计数(暴力解法)
        var smallerNumbersThanCurrent = function (nums) {
          var temp = [];
          nums.map((num, i) => {
            let count = 0
            nums.map((n, j) => {
              if (i != j && num > n) {
                count++
              }
            });
            temp.push(count)
          })
          return temp;
        };
  • 相关阅读:
    SQL 基础技能提升
    科技领域的assert和deassert的含义
    PDF调出本来存在的书签面板
    什么是事务( Transaction )?
    verilog 和systemverilog的Timing Check Tasks
    PT静态时序分析的三种模式
    useful systemverilog system tasks
    Accellera举措可能导致Verilog标准分化
    验证方法学的发展历程及比较
    PrimeTime 时序分析流程和方法(ZZ)
  • 原文地址:https://www.cnblogs.com/ljl-zszy/p/12448943.html
Copyright © 2011-2022 走看看