• 【LeetCode】刷题日记01


    1. 第三大的数

    找到一个数组第三大的数并返回这个数,如果没有就返回最大的数。

    /**
     * @param {number[]} nums
     * @return {number}
     */
    var thirdMax = function(nums) {
        for (i = 0; i < nums.length; i++){
            for (j = i+1; j < nums.length; j++){
                if (nums[i] == nums[j]){
                    nums.splice(j, 1);
                    --j;
                }
            }
        }
        //现在数组中没有重复元素了
        nums.sort((a, b) => b - a);
        return nums.length>2 ? nums[2] : nums[0];
    };

    Tips: 这道题包含一个去除数组中重复元素的方法。注意那个--j。

    2. 和为k的子数组

    /**
     * @param {number[]} nums
     * @param {number} k
     * @return {number}
     */
    var subarraySum = function(nums, k) {
        let count = 0;
        for (let start = 0; start < nums.length; ++start) {
            let sum = 0;
            for (let end = start; end >= 0; --end) {
                sum += nums[end];
                if (sum == k) {
                    count++;
                }
            }
        }
        return count;
    };

    Tips: 这道题的重点在于掌握双重循环,第二层可以从后往前计算和的方法。

    3. 数组嵌套

    如果一个数组S[i] = [ A[i], A[A[I]], A[A[A[I]]], ......],则称为一个嵌套数组。返回给定数组的最大嵌套数组长度。

    /**
     * @param {number[]} nums
     * @return {number}
     */
    var arrayNesting = function(nums) {
        let ans = 0;
        for(let i = 0; i < nums.length; i++) {
            let start = i;
            let count = 0;  //长度计数器
            while(nums[start] !== Infinity) {
                count++;
                let temp = start;
                start = nums[start];
                nums[temp] = Infinity;
            }
            if(count > ans) ans = count;
        }
        return ans;
    };

    Tips: 注意黄色高亮部分,这是打破while循环的方式。一开始只想到了置为一个特定值,没有想到可以利用Infinity这个特殊值。粉色部分是嵌套数组的方法。

  • 相关阅读:
    Lucene搜索引擎例子demo
    java Log4j日志配置详解大全
    java获取当前上一周、上一月、上一年的时间
    Django组件-cookie与session
    前端基础之jQuery
    Django组件-forms
    Django组件-分页器
    Django-Ajax
    Django模型层-多表操作
    Django模型层-单表操作
  • 原文地址:https://www.cnblogs.com/hermionepeng/p/13255611.html
Copyright © 2020-2023  润新知