LeetCode 1567. 乘积为正数的最长子数组长度

TC3xx芯片中断配置避坑指南:从AUTOSAR Davinci配置到SRN地址计算的完整流程 本文详细解析了英飞凌TC3xx芯片的中断配置流程,从AUTOSAR Davinci工具链到硬件调试的全链路指南。重点介绍了中断路由(IR)模块、服务请求节点(SRN)和中断控制单元(ICU)的配置技巧,帮助开发者避开常见陷阱,优化中断性能。 阅读详情

题目链接:LeetCode 1567. 乘积为正数的最长子数组长度

题意:

   给你一个整数数组 nums ,请你求出乘积为正数的最长子数组的长度。

一个数组的子数组是由原数组中零个或者更多个连续数字组成的数组。

请你返回乘积为正数的最长子数组长度

 

解题思路:

  使用一个数组 记录 负数的下标, 当数组中的个数为偶数时,代表从 pre位置到当前位置的乘积为正数

当数组中个数为奇数时,那么当前位置减去 数组的第一负数的下标

   直接上代码,注释解释

class Solution {

    /**
     * @param Integer[] $nums
     * @return Integer
     */
    function getMaxLen($nums) {
        $n = count($nums);
        $sum = array();  // 存负数的下标
        $i = 0;
        $ans = 0;
        $pre = -1;
        for($i = 0; $i < $n; $i++) {
            if($nums[$i] == 0) {     
            	$pre = $i; $sum = array(); // 如果遇到0,初始化
            } elseif($nums[$i] < 0) {    // 当前数小于0
            	array_push($sum, $i);    // 否则就将当前数下标插入数组
            }
            if(count($sum) % 2 == 0) {      // 如果它的个数为偶数,那么当前的乘积为正数
            	$ans = max($ans, $i - $pre); 
            } else {
            	$ans = max($ans, $i - $sum[0]); // 当前下标减去第一个负数的下标 
            }
        }
        return $ans;
    }
}
Confluence安装Drawio插件 记录confluence安装drawio插件步骤 阅读详情

相关推荐

RK3399跨楼层机器人:SLAM技术与商业应用解析

SLAM(即时定位与地图构建)技术是移动机器人自主导航的核心,通过激光雷达、视觉传感器等多源数据融合实现厘米级定位。RK3399作为高性能嵌入式平台,其六核架构和Mali GPU能高效处理SLAM算法与传感器数据。在商业场景中,这种技术组合可支撑机器人实现跨楼层物资配送、仓库盘点等复杂任务。以SLAMTEC Hermes平台为例,其模块化设计支持电梯控制集成,配合双深度相机和360°激光雷达,在医疗、物流等领域已实现12分钟平均配送效率和99.7%的识别准确率。

weixin_30376083的博客 619

力扣(7) - 乘积为正数的最长子数组长度

给你一个整数数组 nums ,请你求出乘积为正数的最长子数组的长度。 一个数组的子数组是由原数组中零个或者更多个连续数字组成的数组。 请你返回乘积为正数的最长子数组长度。 示例 1: 输入:nums = [1,-2,-3,4] 输出:4 解释:数组本身乘积就是正数,值为 24 。 示例 2: 输入:nums = [0,1,-2,-3,-4] 输出:3 解释:最长乘积为正数的子数组为 [1,-2,-3] ,乘积为 6 。 注意,我们不能把 0 也包括到子数组中,因为这样乘积为 0 ,不是正数。 方案

Touale的博客 497

[Linux外设驱动详解]RK3588 U-Boot网络功能深度分析

本文深入分析了RK3588平台上U-Boot的网络功能实现,主要内容包括: 网络架构:详细剖析了从硬件层到协议层的完整网络栈架构,包括GMAC驱动、TFTP/NFS启动、网络命令等关键组件。 驱动实现:重点介绍了RK3588 GMAC驱动结构,包含关键数据结构、专用操作函数集、设备树兼容性配置和GRF寄存器设置。 功能实现:详细说明了驱动初始化流程、RGMII速度适配机制以及PHY接口配置过程。 高级特性:涵盖了网络启动功能、镜像更新和MAC地址传递到Linux内核的机制。 文档通过代码片段和流程图清晰展示

Just Linux! 1113

【LeetCode-204】1567. 乘积为正数的最长子数组长度

【中等】1567. 乘积为正数的最长子数组长度 递归是一种特殊的DP 思路1:(不推荐) 暴力:枚举所有的子数组,计算其结果是否为正。但是复杂度为n2,所以要进行优化 思路2:(推荐) 因为要求结果为正的最长数组的长度,所以不妨从末尾出发向前递推到符合条件的最长子数组 分情况讨论ai的正负,长度为以a[i-1]结尾的最长子数组 其中f(n)/g(n)表示以a[n]结尾的,结果为正/负的最长子数组的长度。所以f(n)/g(n)的值一定大于等于0,因为是长度。 可得如下表格: 第i个元素的大小(ai

weixin_45349512的博客 335

Mac用户必看:PD虚拟机网络初始化失败的3分钟修复指南(附详细截图)

本文针对Mac用户在Parallels Desktop(PD虚拟机)启动时遇到的“网络初始化失败”问题,提供了快速诊断与修复指南。核心原因是macOS系统更新后权限未正确授予。文章通过详细的三步修复法(关闭进程、修改配置文件、重新授权重启),帮助用户在3分钟内恢复虚拟机网络连接,并附有排查清单与预防建议。

weixin_29231027的博客 538

一文解释电路中常用电子元器件应用和选型01

电容和二极管是电路中最常用的两个电子元器件,种类和系列众多,这里简单总结一下应用场景和选型方式 电容(Capacitor) 电容的种类(20种以上)和应用非常广泛,但是我经常遇到的无非就是下面这几种: 应用 1.隔直流。 2.旁路(去耦) 3.耦合 4.滤波 5.温度补偿 6.计时 7.调谐 8.整流 9.储能 种类 1. 陶瓷电容 2. 云母电容 3. 铝电解电容 4. 钽

weixin_43904073的博客 2236

线性dp:DP8 乘积为正数的最长连续子数组

描述 给定一个长度为 n 的整数数组,请你找出其中最长的乘积为正数的子数组长度。 子数组的定义是原数组中一定长度的连续数字组成的数组。 输入描述: 第一行输入一个正整数 n ,表示数组长度。 第二行输入 n 个整数,表示数组中的元素。 输出描述: 输出最长的乘积为正数的子数组长度。 注:positive[i] 表示以下标 i 结尾的乘积为正数的最长子数组长度,negative[i] 表示乘积为负数的最长子数组长度。 #include<iostream> #include&

香蕉的博客 1095

头歌平台 操作系统课堂练习2.3:系统调用

使用 gdb 调试内核,跟踪到 main 函数入口的方法与之前实训一样。系统运行时,执行的前 3 个系统调用的编号和名字分别是什么?系统运行时,执行的前 3 个系统调用的编号和名字分别是什么?本关卡使用版本 1 内核进行分析,版本 1 内核文件存放在。为了完成本关任务,你需要:跟踪系统调用的发生。此时,系统调用号存放在寄存器 eax 中。

lazbuyaotoutu的博客 2万+

leetcode1567. 乘积为正数的最长子数组长度

题目链接:https://leetcode-cn.com/problems/maximum-length-of-subarray-with-positive-product/ 题意: 给你一个整数数组 nums,请你求出乘积为正数的最长子数组的长度。 一个数组的子数组是由原数组中零个或者更多个连续数字组成的数组。 请你返回乘积为正数的最长子数组长度。 方法:动态规划,定义dp数组,存储前i个数字里,乘积为正数的最长子数组 class Solution { public: i..

Chevy_cxw的博客 326

Ubuntu22.04安装搜狗输入法踩坑实录:从依赖报错到完美解决的完整指南

本文详细解析了在Ubuntu 22.04系统上安装搜狗拼音输入法的完整流程,从解决依赖报错到配置fcitx框架,再到最终优化使用体验。针对常见的dpkg安装错误和fcitx冲突问题,提供了实用的解决方案和命令,帮助用户顺利完成安装并享受流畅的中文输入体验。

palm99的专栏 971

RK3588部署YOLO模型 包含模型量化+npu轻量化+ubuntu+RGA图像加速和多线程模型加速 包源码

本专栏为深度学习部署全栈学习体系,包含68篇由浅入深的教程,专为零基础学习者设计。内容涵盖TensorRT与RK3588平台部署技术,包含Jetson系列和RK系列硬件部署实战,采用"理论+源码+实战"三位一体的教学模式。学习路径从基础环境搭建到模型优化、容器化部署、多硬件平台适配,最终掌握工业级AI部署能力。特色包括C++基础教学、Docker容器化、INT8量化、多线程优化等核心技术,并附带YOLOv5、人脸检测、车牌识别等多个实战项目源码。适合算法工程师转部署方向、嵌入式开发者及对

FJN110的博客 3731

1567. 乘积为正数的最长子数组长度 ●●

1567. 乘积为正数的最长子数组长度 ●●、双指针、动态规划

chenyfan_blog 311

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

leetcode1567. 乘积为正数的最长子数组长度(Python3、c++)

文章目录leetcode1567. 乘积为正数的最长子数组长度方法:动态规划思路:代码:Python3:cpp:结果: leetcode1567. 乘积为正数的最长子数组长度 给你一个整数数组 nums ,请你求出乘积为正数的最长子数组的长度。 一个数组的子数组是由原数组中零个或者更多个连续数字组成的数组。 请你返回乘积为正数的最长子数组长度。 示例 1: 输入:nums = [1,-2,-3,4] 输出:4 解释:数组本身乘积就是正数,值为 24 。 示例 2: 输入:nums = [0,1,-2,-3

weixin_43422466的博客 1124

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

php 多个数组乘积_leetcode第204周赛第二题leetcode1567. 乘积为正数的最长子数组长度...

leetcode1567. 乘积为正数的最长子数组长度给你一个整数数组 nums ,请你求出乘积为正数的最长子数组的长度。一个数组的子数组是由原数组中零个或者更多个连续数字组成的数组。请你返回乘积为正数的最长子数组长度。示例 1:输入:nums = [1,-2,-3,4] 输出:4 解释:数组本身乘积就是正数,值为 24 。示例 2:输入:nums = [0,1,-2,-3,-4] 输出:3 解释...

weixin_39959192的博客 131

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

力扣 -- 1567. 乘积为正数的最长子数组长度

力扣 -- 1567. 乘积为正数的最长子数组长度

weixin_70056514的博客 177

模拟卷Leetcode【普通】1567. 乘积为正数的最长子数组长度

给你一个整数数组 nums ,请你求出乘积为正数的最长子数组的长度。一个数组的子数组是由原数组中零个或者更多个连续数字组成的数组。请你返回乘积为正数的最长子数组长度。示例 1:输入:nums = [1,-2,-3,4] 输出:4 解释:数组本身乘积就是正数,值为 24 。 示例 2:输入:nums = [0,1,-2,-3,-4] 输出:3 解释:最长乘积为正数的子数组为 [1,-2,-3] ,乘积为 6 。 注意,我们不能把 0 也包括到子数组中,因为这样乘积为 0 ,不是正数。 示例 3:输入:num

卷子的博客 701

Leetcode.1567 乘积为正数的最长子数组长度

贪心

感觉画质不如...原神的博客 380

动态规划——乘积为正数的最长子数组长度(Leetcode 1567)

动态规划——乘积为正数的最长子数组长度(Leetcode 1567) 解题思路及代码

青春无问西东 岁月自成芳华 997

力扣1567 乘积为正数的最长子数组长度

而正负两种状态也需要记录,所以用f(i,0)表示乘积正数,f(i,1)表示乘积负数。dp[i][0]表示以索引 i 结尾的,乘积为正数的最长连续子数组的 最长长度。dp[i][1]表示以索引 i 结尾的,乘积为负数的最长连续子数组的 最长长度。f(i,0)表示以i结尾的,乘积为正数的连续子数组的最长长度。f(i,1)表示以i结尾的,乘积为负数的连续子数组的最长长度。为正,若f(i-1,1)不为0,才+1,否则直接为0。为负且f(i-1,1)不为0,才+1,否则直接为0。为0,则直接长度为0。

weixin_43753388的博客 193

LeetCode1567. 乘积为正数的最长子数组长度 JAVA DP

给你一个整数数组 nums ,请你求出乘积为正数的最长子数组的长度。 一个数组的子数组是由原数组中零个或者更多个连续数字组成的数组。 请你返回乘积为正数的最长子数组长度。 示例 1: 输入:nums = [1,-2,-3,4] 输出:4 解释:数组本身乘积就是正数,值为 24 。 示例 2: 输入:nums = [0,1,-2,-3,-4] 输出:3 解释:最长乘积为正数的子数组为 [1,-2,-3] ,乘积为 6 。 注意,我们不能把 0 也包括到子数组中,因为这样乘积为 0 ,不是正数。 示例 3

sinb妃的博客 392

力扣(leetcode) 1567. 乘积为正数的最长子数组长度

码题

weixin_45678498的博客 427

leetcode 1567. 乘积为正数的最长子数组长度

一、题意 给出一个整数数组 nums ,求连续相乘为正数的最大值,包括单个元素的情况。 二、解法 解法一: 根据提示自己写的: 1、判断是否是0,是则根据负数的数量的奇偶,计算长度: 偶数,计算当前位置到start 位置的长度 奇数,计算当前位置到第一个负数后位置的长度。 2、判断是否是负数,是: 是第一个负数,计算出之前的长度 不是第一个负数,判断奇偶: 1、奇数,计算出该负数之前的位置到start位置的长度,计算出第一个负数后位置到当前位置的长度,与最大值比较大小。 2、偶数,如果是最后一个元素,则计

Genius_J的博客 423

0动态规划 LeetCode1567. 乘积为正数的最长子数组长度

0动态规划

31楼下小黑的博客 178

leetcode 1567. 乘积为正数的最长子数组长度 分段暴力或dp 补题

乘积为正数的最长子数组长度 给你一个整数数组 nums ,请你求出乘积为正数的最长子数组的长度。 一个数组的子数组是由原数组中零个或者更多个连续数字组成的数组。 请你返回乘积为正数的最长子数组长度。 示例 1: 输入:nums = [1,-2,-3,4] 输出:4 解释:数组本身乘积就是正数,值为 24 。 示例 2: 输入:nums = [0,1,-2,-3,-4] 输出:3 解释:最长乘积为正数的子数组为 [1,-2,-3] ,乘积为 6 。 注意,我们不能把 0 也包括到子数组中,因为这样乘积为.

马角的逆袭的博客 325

[LeetCode]1567. 乘积为正数的最长子数组长度

起先我是写了一版代码,并通过不断调试通过了94/112个案例,但在某个案例上反复调试不通后我去看了评论区的解法,再看我自己的代码就发现这是什么垃圾...遂删除记录。其实之前做过动态规划的题,但光分析题目的时候还是想不起来...

qq_45430996的博客 129

LeetCode1567. 乘积为正数的最长子数组长度--简单模拟

乘积为正数的最长子数组长度 给你一个整数数组 nums ,请你求出乘积为正数的最长子数组的长度。 一个数组的子数组是由原数组中零个或者更多个连续数字组成的数组。 请你返回乘积为正数的最长子数组长度。 示例 1: 输入:nums = [1,-2,-3,4] 输出:4 解释:数组本身乘积就是正数,值为 24 。 示例 2: 输入:nums = [0,1,-2,-3,-4] 输出:3 解释:最长乘积为正数的子数组为 [1,-2,-3] ,乘积为 6 。 注意,我们不能把 0 也包括到子数组中,因为这样乘积为.

weixin_43918046的博客 252
上一篇: LeetCode 1566. 重复至少 K 次且长度为 M 的模式
下一篇: ProjectEuler Problem1.Multiples of 3 and 5
error0318
博客等级 码龄9年 57粉丝 515原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值