【paiza】連続するk要素1でコードの解説が一部分からないので教えて欲しい
Q&A
Closed
解決したいこと
をjavaで解いて、解説を読みましたが
なぜ
int max_sum = -100000
なのかが分かりません。教えていていただけますでしょうか。
例えば、3要素の和の場合は
-100 ≦ a_i ≦ 100で3要素の和の最低値が-300(-100+(-100)+(-100))という理屈は分かるのですが
なぜ連続するk要素1は-100000なのでしょうか
表示された条件では
すべてのテストケースにおいて、以下の条件をみたします。
・ 入力はすべて整数
・ 1 ≦ k ≦ n ≦ 1,000
・ -100 ≦ a_i ≦ 100
該当するソースコード
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int k = sc.nextInt();
int[] a = new int[n];
for (int i = 0; i < n; i++) {
a[i] = sc.nextInt();
}
int max_sum_idx = -1;//なぜ-1なのか
int max_sum = -100000;//なぜ-100000なのか
for (int i = 0; i < n - k + 1; i++) {
int tmp_sum = 0;
for (int j = 0; j < k; j++) {//kをループさせるため
tmp_sum += a[i + j];
}
if (max_sum < tmp_sum) {
max_sum_idx = i;
max_sum = tmp_sum;
}
}
System.out.println(max_sum_idx + 1);
}
}
0 likes