给定一个长度为 n 的整数数组,请你找出其中最长的乘积为正数的子数组长度。 子数组的定义是原数组中一定长度的连续数字组成的数组。 数据范围: , 数组中的元素满足

区块链毕设网qklbishe.com为您提供问题的解答

给定一个长度为 n 的整数数组,请你找出其中最长的乘积为正数的子数组长度。
子数组的定义是原数组中一定长度的连续数字组成的数组。
数据范围: 给定一个长度为 n 的整数数组,请你找出其中最长的乘积为正数的子数组长度。    子数组的定义是原数组中一定长度的连续数字组成的数组。          数据范围:  , 数组中的元素满足 , 数组中的元素满足 给定一个长度为 n 的整数数组,请你找出其中最长的乘积为正数的子数组长度。    子数组的定义是原数组中一定长度的连续数字组成的数组。          数据范围:  , 数组中的元素满足

import org.w3c.dom.html.HTMLAreaElement;

import javax.swing.plaf.InputMapUIResource;
import java.io.*;
import java.nio.channels.ClosedByInterruptException;
import java.util.*;
import java.util.concurrent.ConcurrentNavigableMap;
import java.util.stream.Collectors;

public class Main {
    static int count1;
    static List<String> result = new ArrayList<>();

    public static void main(String[] args) {
        try {
            BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
            String line;
            while ((line = reader.readLine()) != null) {
                int count = Integer.parseInt(line);
                String[] values = reader.readLine().split(" ");
                int[] value = new int[count];
                for(int i=0;i<count;i++){
                    value[i] = Integer.parseInt(values[i]);
                }

                int result =  fun(value,count);
                System.out.println(result);
            }

        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    private static int fun(int[] value, int count) {
        int lastPindex=0,lastStartIndex=0;
        int flag=1;
        int[] dp = new int[count];
        int maxCount=0;
        List<Integer> l=  new ArrayList<>();
        for(int i=0;i<count;i++){
            if(value[i]>0){
                flag*=1;
            }else if(value[i]==0){
                flag=0;

            }else{
                flag*=-1;
            }

            if(flag>0){
                lastPindex=i;
            }else if(flag==0){
                flag=1;
                l.add(lastPindex+1-lastStartIndex);
                lastStartIndex = i+1;
            }
        }

        for(int i=0;i<l.size();i++){
            if(l.get(i)>maxCount){
                maxCount = l.get(i);
            }
        }
        if(((lastPindex-lastStartIndex)+1)>maxCount){
            maxCount = lastPindex-lastStartIndex+1;
        }
        return maxCount;
    }

}

00:53

以上就是关于问题给定一个长度为 n 的整数数组,请你找出其中最长的乘积为正数的子数组长度。 子数组的定义是原数组中一定长度的连续数字组成的数组。
数据范围: , 数组中的元素满足的答案

欢迎关注区块链毕设网-
专业区块链毕业设计成品源码,定制。

区块链NFT链游项目方科学家脚本开发培训

承接区块链项目定制开发

微信:btc9767

QQ :1330797917

TELEGRAM: BTCOK9

承接区块链项目定制开发


qklbishe.com区块链毕设代做网专注|以太坊fabric-计算机|java|毕业设计|代做平台-javagopython毕设 » 给定一个长度为 n 的整数数组,请你找出其中最长的乘积为正数的子数组长度。 子数组的定义是原数组中一定长度的连续数字组成的数组。 数据范围: , 数组中的元素满足