题目:
解析:
代码:
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
相关推荐
mCell4 分钟前
Lua 编程入门:从基础语法到元表wuyk5552 小时前
98.C语言易混难点:字符数组与字符串指针的底层差异峥无2 小时前
从0到1手撕红黑树:封装实现 my_map 与 my_set(SGI-STL 源码级深度解析)不会代码的小猴3 小时前
3. 控件学习1203号居民5 小时前
LeetCode hot 100 —41. 缺失的第一个正数专注仿真7 小时前
问答大模型技术方案算法实现-熵权法融合算法 + 交叉编码器重排算法evans在进步7 小时前
LeetCode 322:零钱兑换——Java 动态规划详解地平线开发者8 小时前
量化为什么会有损失:从量化误差到精度下降手写码匠8 小时前
华为云Flexus+DeepSeek征文|Dify 多 Agent 会话管理与上下文工程实战:让智能体“记住该记住的,忘掉该忘掉的“
