很抱歉,您没有提供需要改写的句子。请提供您希望改写的句子,我将为您改写为一个长尾词的。
- 内容介绍
- 文章标签
- 相关推荐
本文共计499个文字,预计阅读时间需要2分钟。
1. 简述:描述 + 给定一个长度为n+的整数数组,请找出其中所有乘积为正整数的子数组长度。 + 子数组的定义是原数组中一定长度的连续数字组成的数组。 + 数据范围: + , + 数组中的元素满足条件满。
1.简述:
给定一个长度为 n 的整数数组,请你找出其中最长的乘积为正数的子数组长度。
子数组的定义是原数组中一定长度的连续数字组成的数组。
数据范围:, 数组中的元素满足
输入描述:第一行输入一个正整数 n ,表示数组长度。
第二行输入 n 个整数,表示数组中的元素。
输出描述:输出最长的乘积为正数的子数组长度
示例1输入:
51 2 3 -5 1
输出:
3示例2输入:
51 2 3 0 5
输出:
32.代码实现:
import java.util.*;public class Main{
public static void main(String []args){
Scanner input=new Scanner(System.in);
int n=input.nextInt();
int []num=new int[n];
for(int i=0;i<n;i++){
num[i]=input.nextInt();
}
int [][]dp=new int[n+1][2];
int max=0;
dp[0][0]=0;
dp[0][1]=0;
for(int i=1;i<=n;i++){
int val=num[i-1];
if(val>0){
dp[i][0]=dp[i-1][0]+1;
if(dp[i-1][1]==0){
dp[i][1]=0;
}
else{
dp[i][1]=dp[i-1][1]+1;
}
}
else if(val<0){ //交叉更新
dp[i][1]=dp[i-1][0]+1;
if(dp[i-1][1]==0){
dp[i][0]=0;
}
else{
dp[i][0]=dp[i-1][1]+1;
}
}
}
for(int i=1;i<=n;i++){
max=Math.max(max,dp[i][0]);
}
System.out.println(max);
}
}
本文共计499个文字,预计阅读时间需要2分钟。
1. 简述:描述 + 给定一个长度为n+的整数数组,请找出其中所有乘积为正整数的子数组长度。 + 子数组的定义是原数组中一定长度的连续数字组成的数组。 + 数据范围: + , + 数组中的元素满足条件满。
1.简述:
给定一个长度为 n 的整数数组,请你找出其中最长的乘积为正数的子数组长度。
子数组的定义是原数组中一定长度的连续数字组成的数组。
数据范围:, 数组中的元素满足
输入描述:第一行输入一个正整数 n ,表示数组长度。
第二行输入 n 个整数,表示数组中的元素。
输出描述:输出最长的乘积为正数的子数组长度
示例1输入:
51 2 3 -5 1
输出:
3示例2输入:
51 2 3 0 5
输出:
32.代码实现:
import java.util.*;public class Main{
public static void main(String []args){
Scanner input=new Scanner(System.in);
int n=input.nextInt();
int []num=new int[n];
for(int i=0;i<n;i++){
num[i]=input.nextInt();
}
int [][]dp=new int[n+1][2];
int max=0;
dp[0][0]=0;
dp[0][1]=0;
for(int i=1;i<=n;i++){
int val=num[i-1];
if(val>0){
dp[i][0]=dp[i-1][0]+1;
if(dp[i-1][1]==0){
dp[i][1]=0;
}
else{
dp[i][1]=dp[i-1][1]+1;
}
}
else if(val<0){ //交叉更新
dp[i][1]=dp[i-1][0]+1;
if(dp[i-1][1]==0){
dp[i][0]=0;
}
else{
dp[i][0]=dp[i-1][1]+1;
}
}
}
for(int i=1;i<=n;i++){
max=Math.max(max,dp[i][0]);
}
System.out.println(max);
}
}

