回答編集履歴

3

.

2023/01/30 04:01

投稿

int32_t
int32_t

スコア20884

test CHANGED
@@ -1,5 +1,7 @@
1
1
  最小値最大値が2回ずつ含まれている場合、最後のループ内で `minFlag` `maxFlag` を `0` から `1`に変更した際に続けて `minFlag == 1` `maxFlag == 1` の条件にひっかかってしまいます。ループ中の3個目の `if` を `else if` にするとうまくいきそうです。
2
2
  こういう問題はデバッガでステップ実行すればすぐに気付くので、デバッガの使い方を覚えましょう。
3
+
4
+ しかし、このアプローチだと全項目が同じ値だと間違った結果になりますね。
3
5
 
4
6
  無条件にすべて足して後から最小値と最大値を引くと、よりシンプルなコードになるでしょう。
5
7
 

2

.

2023/01/30 03:54

投稿

int32_t
int32_t

スコア20884

test CHANGED
@@ -1,4 +1,5 @@
1
1
  最小値最大値が2回ずつ含まれている場合、最後のループ内で `minFlag` `maxFlag` を `0` から `1`に変更した際に続けて `minFlag == 1` `maxFlag == 1` の条件にひっかかってしまいます。ループ中の3個目の `if` を `else if` にするとうまくいきそうです。
2
+ こういう問題はデバッガでステップ実行すればすぐに気付くので、デバッガの使い方を覚えましょう。
2
3
 
3
4
  無条件にすべて足して後から最小値と最大値を引くと、よりシンプルなコードになるでしょう。
4
5
 

1

.

2023/01/30 03:52

投稿

int32_t
int32_t

スコア20884

test CHANGED
@@ -1,4 +1,5 @@
1
- 最小値最大値が2回ずつ含まれている場合、最後のループ内で `minFlag` `maxFlag` を `0` から `1`に変更した際に続けて `minFlag == 1` `maxFlag == 1` の条件にひっかかってしまいます。ループ中の3個目の `if` を `else if` にすると最小の変更でうまくいくようになりそうです。
1
+ 最小値最大値が2回ずつ含まれている場合、最後のループ内で `minFlag` `maxFlag` を `0` から `1`に変更した際に続けて `minFlag == 1` `maxFlag == 1` の条件にひっかかってしまいます。ループ中の3個目の `if` を `else if` にするとうまくいそうです。
2
2
 
3
- 私なら、無条件にすべて足して後から最小値と最大値を引きます
3
+ 無条件にすべて足して後から最小値と最大値を引くと、よりシンプルなコードになるでしょう
4
4
 
5
+