标签: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之类的。
标签:sha 输入 lse 记录 form each contest href problem
原文地址:https://www.cnblogs.com/zhangzs000/p/11185117.html