码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2019-07-14 19:49:54      阅读:489      评论:0      收藏:0      [点我收藏+]

标签:sha   输入   lse   记录   form   each   contest   href   problem   

给你一份工作时间表 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. 表现良好的最长时间段(数组)

标签:sha   输入   lse   记录   form   each   contest   href   problem   

原文地址:https://www.cnblogs.com/zhangzs000/p/11185117.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!