java - 为什么我会收到此错误:数据结构(数组)?
问题描述
我基本上需要找到总和为负的子数组的数量。
import java.io.*;
import java.util.stream.IntStream;
import java.util.Arrays;
import java.util.Scanner;
public class Solution {
static int add(int a[]) {
int sum = 0;
for (int i = 0; i < a.length; ++i) {
sum = sum + a[i];
}
return sum;
}
public static void main(String[] args) {
/*
* Enter your code here.
* Read input from STDIN.
* Print output to STDOUT.
* Your class should be named Solution.
*/
int count = 0;
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int[] arr = new int[n];
for (int k = 0; k < n; ++k) {
arr[k] = sc.nextInt();
}
for (int i = 0; i < n; ++i) {
for (int j = 0; j < n - i; ++j) {
int slice[] = IntStream.range(j, j + i + 1).map(j -> arr[j]).toArray();
if (add(slice) < 0) {
++count;
}
}
}
System.out.println(count);
}
}
编译消息
Solution.java:32: error: variable j is already defined in method main(String[])
int slice[] = IntStream.range(j, j + i + 1).map(j -> arr[j]).toArray();
^
1 error
Exit Status
255
解决方案
这是因为这里的变量范围j
。当你在 map 中引用一个变量时,JVM 会尝试初始化它。在您的情况下,JVM 正在尝试使用映射的内容来初始化 j,但它在您的第二个 for 循环中已经可用。只需使用任何其他变量(例如“k”)即可完成。
import java.io.*;
import java.util.stream.IntStream;
import java.util.Arrays;
import java.util.Scanner;
public class Solution {
static int add(int a[])
{
int sum= 0;
for(int i = 0; i < a.length; ++i)
{
sum = sum + a[i];
}
return sum;
}
public static void main(String[] args) {
/* Enter your code here. Read input from STDIN. Print output to STDOUT. Your class should be named Solution. */
int count = 0;
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int[] arr = new int[n];
for(int k = 0; k < n; ++k)
{
arr[k] = sc.nextInt();
}
for(int i = 0; i < n; ++i)
{
for(int j = 0; j < n - i; ++j)
{
int slice[] = IntStream.range(j, j + i + 1).map(k -> arr[k]).toArray();
if(add(slice) < 0)
{
++count;
}
}
}
System.out.println(count);
}
}
推荐阅读
- android - E/RecyclerView:没有附加适配器;在Android,kotlin中跳过布局
- flutter - StreamBuilder 颤振句柄 ConnectionState.waiting
- php - 从laravel中的多对多关系中获取单列
- java - 无法从“14.0.1”确定 java 版本。Windows 10 上的 Android 工作室 LibDGX
- mysql - UNION 表 MySQL 并输出到 JSON 数组
- python - 将当前行与所有先前行进行比较
- javascript - forEachFeatureAtPixel 在不同的特征上表现不同
- python - 同时使用 Python f-strings 和 Jinja
- ios - 禁用在文本视图中的链接中间设置光标
- r - 如何在ggtree的系统发育树的同一标签中应用斜体和普通字体