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、