JavaScriptで配列の最小時間差を見つける
問題
「時:分」形式で24時間制の時刻の配列を受け取るJavaScript関数を作成する必要があります。この関数は、配列内の任意の2つの時点間の最小分の差を見つける必要があります。
たとえば、関数への入力が-
の場合const arr = ["23:59","00:00"];
その場合、出力は-
になります。const output = 1;
時間の最小差は1分なので
例
以下はコードです-
const arr = ["23:59","00:00"]; const findMinDifference = (arr = []) => { const find = (str = '') => str.split(':').map(time => parseInt(time, 10)) const mapped = arr.map((time) => { const [hour1, minute1] = find(time) return hour1 * 60 + minute1 }); const sorted = [] let isrepeating = false mapped.forEach((time) => { if (sorted[time] !== undefined || sorted[time + 24 * 60] !== undefined) { isrepeating = true } sorted[time] = time sorted[time + 24 * 60] = time + 24 * 60 }) if (isrepeating) { return 0 } let min = Infinity let prev = null for (let i = 0; i < sorted.length; i++) { if (sorted[i] !== undefined) { if (prev) { min = Math.min(min, sorted[i] - prev) } prev = sorted[i] } } return min }; console.log(findMinDifference(arr));
出力
以下はコンソール出力です-
1
-
JavaScriptで配列の中央値インデックスを見つける
問題 1次元空間内のさまざまな小惑星の位置を表す配列arrを取り込むJavaScript関数を作成する必要があります。 各小惑星について、絶対値はそのサイズを表し、符号はその方向を表します(正の意味は右、負の意味は左)。各小惑星は同じ速度で移動します。 私たちの機能は、すべての衝突後の小惑星の状態を見つけることになっています。 2つの小惑星が出会うと、小さい方の小惑星が爆発します。両方が同じサイズの場合、両方が爆発します。同じ方向に移動する2つの小惑星が出会うことはありません。 たとえば、関数への入力が-の場合 入力 const arr = [1, 7, 3, 6, 5, 6];
-
C++での最小時間差
「時:分」形式の24時間制の時点のリストがあるとすると、リスト内の任意の2つの時点間の最小分差を見つける必要があります。したがって、入力が[“ 12:30”、” 15:17”]の場合、167が返されます。 これを解決するには、次の手順に従います- サイズ24*60 + 1のokという配列を定義すると、最初はすべてfalseです。 n:=tpのサイズ 0からn–1の範囲のiの場合 hr:=時間からの時間部分 min:=文字列の分の部分 時間:=時間*60+分 ok [time]がtrueの場合は0を返し、それ以外の場合はok[time]をtrueに設定します。 last:=0、