伙计们我想解决"Arrays Manipulation" in hacker rank
但是我在几个测试用例中面临超时错误,请帮助我理解下面代码中的问题 .
public class ArrayManipulation {
public static void main(String [] args) {
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
int m = scanner.nextInt();
long[] arr = new long[n];
for(int i=0;i<n;i++) {
arr[i]=0;
}
int left;
int right;
int val;
for(int j=0;j<m;j++) {
left = scanner.nextInt();
right = scanner.nextInt();
val = scanner.nextInt();
int max, temp;
while(left <= right) {
arr[left-1] += val;
left++;
}
}
long temp=0,max=0;
for(int i= 0;i<n;i++) {
temp = arr[i];
if(temp > max) {
max = temp;
}
}
System.out.println(max);
}
}
1 回答
很酷,我不知道黑客的排名 . 因此在java中,数组初始化为0,因此您不必手动执行它来保存1个循环,如果您在计算时跟踪最大值,则不必在最后循环,从而节省1个以上环 . 如果数组足够大并且数据集的数量很少 . 这种变化应该会影响性能时间 . 告诉我这是否有效 .