字节笔试为什么这个提交通过0%,测试用例测了几个都可以通过
import java.util.*; /** * @author bty * @date 2022/8/28 * @since 1.8 **/ public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); int t = in.nextInt(); for (int i = 0; i < t; i++) { int n = in.nextInt(); int[] nums = new int[n]; for (int j = 0; j < n; j++) { int curj = in.nextInt(); nums[j] = curj; } calc(nums); } } public static void calc(int[] nums) { if (nums.length == 1) System.out.println(nums[0]); int max = Integer.MIN_VALUE; int maxLeft = 0; int maxRight = 0; int right = 0; int left; int start = 0; while (right < nums.length) { if (nums[right] == 0) { right++; // 如果nums[right] == 0,left直接从新的start开始 start = right; continue; } left = start; while (left <= right) { if (left == right) { if (nums[right] == max && left < maxLeft) { maxLeft = left; maxRight = right; } else if (nums[right] == max && left == maxLeft && right < maxRight) { maxRight = right; } if (nums[right] > max) { max = nums[right]; maxLeft = left; maxRight = right; } break; } int curMax = 1; for (int i = left; i <= right; i++) { curMax *= nums[i]; } if (curMax == max && left < maxLeft) { maxLeft = left; maxRight = right; } else if (curMax == max && left==maxLeft && right<maxRight){ maxRight = right; } if (curMax > max) { max = curMax; maxLeft = left; maxRight = right; } left++; } right++; } // 样例输出都是索引+1,这个不是错误的地方 System.out.println((maxLeft + 1) + " " + (maxRight + 1)); } }