5129. 表现良好的最长时间段(数组)

Posted zhangzs000

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了5129. 表现良好的最长时间段(数组)相关的知识,希望对你有一定的参考价值。

给你一份工作时间表 hours,上面记录着某一位员工每天的工作小时数。

我们认为当员工一天中的工作小时数大于 8 小时的时候,那么这一天就是「劳累的一天」。

所谓「表现良好的时间段」,意味在这段时间内,「劳累的天数」是严格 大于「不劳累的天数」。

请你返回「表现良好时间段」的最大长度。

 

示例 1:

输入:hours = [9,9,6,0,6,6,9]
输出:3
解释:最长的表现良好时间段是 [9,9,6]。

 

提示:

  • 1 <= hours.length <= 10000
  • 0 <= hours[i] <= 16

 

题目链接:

https://leetcode-cn.com/contest/weekly-contest-145/problems/longest-well-performing-interval/

 

/**
 * @param number[] hours
 * @return number
 */
var longestWPI = function(hours) 
    let arr = [];
    for (var i = 0; i < hours.length; i++) 
        for (var j = i+1; j <= hours.length; j++) 
            let lao=0, xiu=0, subArr = hours.slice(i, j);
            subArr.forEach(s=>
                if(s>8)
                    lao++
                else 
                    xiu++
                
            )
            if(lao>xiu)
                pushArr(arr, subArr);
            
            
        
    
    if(!arr.length) return 0;
    let maxLenArr = arr[0];
    for (var i = 1; i < arr.length; i++) 
        if(arr[i].length>maxLenArr.length)
            maxLenArr = arr[i]
        
    
    return maxLenArr.length;
;
let pushArr =function(arr, subArr)
    arr.push(
            subArr: subArr,
            length: subArr.length
        );

 

 

/**
 * @param number[] hours
 * @return number
 */
var longestWPI = function(hours) 
     let n = hours.length;
     let array = new Array(n);
    for(let i = 0; i < n; i++)
        if(hours[i] > 8)
            array[i] = 1;
        else
            array[i] = -1;
    
    let ans = 0;
    for(let i = 0; i < n; i++)
        let temp = 0;
        for(let j = i; j < n; j++)
            temp += array[j];
            if(temp > 0)
                ans = Math.max(ans, j-i+1);
        
    
    return ans;
;

 

个人理解:

像这种求最值,多层循环又会出现内存溢出的问题。
总是会出现额外的数组,还有Math.max之类的。

 

以上是关于5129. 表现良好的最长时间段(数组)的主要内容,如果未能解决你的问题,请参考以下文章

1124. 表现良好的最长时间段

[LeetCode] 1124. Longest Well-Performing Interval 表现良好的最长时间段

LeetCode 5129. 下降路径最小和 II Minimum Falling Path Sum II

Java中字符串数组中的最长公共前缀

HDU 5129 Yong Zheng's Death

CTA因子总体表现良好 时间序列动量和波动率因子表现最佳