题目:
解析:
代码:
javapublic int getMaxLen(int[] nums) { int n = nums.length; int[] f = new int[n+1]; int[] g = new int[n+1]; int ret = -0x3f3f3f3f; for(int i = 1; i <= n; i++){ if(nums[i-1] < 0){ f[i] = g[i-1] == 0 ? 0 : g[i-1] + 1; g[i] = f[i-1] + 1; } else if(nums[i-1] > 0) { g[i] = g[i-1] == 0 ? 0 : g[i-1] + 1; f[i] = f[i-1] + 1; } ret = Math.max(ret,f[i]); } return ret; }
动态规划子数组系列一>乘积为正数的最长子数组长度
robin_suli2024-11-20 12:02
相关推荐
计算机小白一个2 小时前
蓝桥杯 Java B 组之设计 LRU 缓存万事可爱^2 小时前
HDBSCAN:密度自适应的层次聚类算法解析与实践大数据追光猿4 小时前
Python应用算法之贪心算法理解和实践Dream it possible!5 小时前
LeetCode 热题 100_在排序数组中查找元素的第一个和最后一个位置(65_34_中等_C++)(二分查找)(一次二分查找+挨个搜索;两次二分查找)夏末秋也凉5 小时前
力扣-回溯-46 全排列南宫生5 小时前
力扣每日一题【算法学习day.132】柠石榴5 小时前
【练习】【回溯No.1】力扣 77. 组合Leuanghing5 小时前
【Leetcode】11. 盛最多水的容器qy发大财5 小时前
加油站(力扣134)王老师青少年编程5 小时前
【GESP C++八级考试考点详细解读】