Javascript
 Computer >> コンピューター >  >> プログラミング >> Javascript

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

  1. JavaScriptで配列の中央値インデックスを見つける

    問題 1次元空間内のさまざまな小惑星の位置を表す配列arrを取り込むJavaScript関数を作成する必要があります。 各小惑星について、絶対値はそのサイズを表し、符号はその方向を表します(正の意味は右、負の意味は左)。各小惑星は同じ速度で移動します。 私たちの機能は、すべての衝突後の小惑星の状態を見つけることになっています。 2つの小惑星が出会うと、小さい方の小惑星が爆発します。両方が同じサイズの場合、両方が爆発します。同じ方向に移動する2つの小惑星が出会うことはありません。 たとえば、関数への入力が-の場合 入力 const arr = [1, 7, 3, 6, 5, 6];

  2. 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、