最大値と最小値を求める
01.リストされた数字から最高価格と最低価格を求める
問題の定義
複数の数が配列内にある場合、最大値と最小値を探します.
並んだ何位かを探し出す.
1回の複文で問題を解決する.
例えば[10,55,23,2,79,101,16,82,30,45]
解決する
Mathのmin()、max()を使うとすぐに解けますが、一度も使わずに解けましょう.
配列の最初の数値がmaxとminであると仮定し、配列の最後の数値を比較し、より大きいまたはより小さい数値が発生したときにmaxとminの値を変更します.
その時の位置を変数に格納します.
プログラミング
1回繰り返すと、希望する値が2つ見つかります.この場合,実行速度はリストされた数に比例するのでO(n)となる.
ポスト
簡単に答えてよかった.
問題の定義
複数の数が配列内にある場合、最大値と最小値を探します.
並んだ何位かを探し出す.
1回の複文で問題を解決する.
例えば[10,55,23,2,79,101,16,82,30,45]
Mathのmin()、max()を使うとすぐに解けますが、一度も使わずに解けましょう.
配列の最初の数値がmaxとminであると仮定し、配列の最後の数値を比較し、より大きいまたはより小さい数値が発生したときにmaxとminの値を変更します.
その時の位置を変数に格納します.
プログラミング
package me.sungbin.chapter8.ch08_01;
public class MinMaxProblem {
public static void main(String[] args) {
int[] arr = {10, 55, 23, 2, 79, 101, 16, 82, 30, 45};
int min = arr[0];
int max = arr[0];
int minPos = 0;
int maxPos = 0;
for (int i = 0; i < arr.length; i++) {
if (min > arr[i]) {
min = arr[i];
minPos = i;
}
if (max < arr[i]) {
max = arr[i];
maxPos = i;
}
}
System.out.println("최소값: " + min + "이고, " + minPos + "번째 위치에 있습니다.");
System.out.println("최대값: " + max + "이고, " + maxPos + "번째 위치에 있습니다.");
}
}
時間分析の実行1回繰り返すと、希望する値が2つ見つかります.この場合,実行速度はリストされた数に比例するのでO(n)となる.
ポスト
簡単に答えてよかった.
Reference
この問題について(最大値と最小値を求める), 我々は、より多くの情報をここで見つけました https://velog.io/@ysb05222/최대값-최소값-구하기テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol