JavaScriptでの絶対値の合計の最小化
整数のソートされた配列が与えられたとしましょう。それをarrと呼びましょう。 −
の値となるような整数xを見つける必要がありますabs(a[0] - x) + abs(a[1] - x) + ... + abs(a[a.length - 1] - x)
は可能な限り最小です(ここでabsは絶対値を示します)。考えられる答えがいくつかある場合は、最小のものを出力してください。
例-
のために、
arr = [2, 4, 7],
出力は-
である必要がありますabsoluteValuesSumMinimization(arr) = 4
なぜなら、abs(2-4)+ abs(4-4)+ abs(7-4)=5であり、これは任意の数で達成できる最小のものです。
私たちはそれを知っています、
arr.length/2
半分の長さを返します。
偶数の長さの配列の場合、これは中央の右側になります。奇数の長さの配列の場合は、中央になります。
-
Math.ceil(arr.length / 2)は必要に応じて切り上げられるため、5の配列の中央は2.5-> 3になります。これにより、奇数の長さの配列が1つずれます。
-
Math.ceil(arr.length / 2)-1は1つのインデックスを下げます。これにより、すべてのアレイのオフバイワンエラーが修正されます。
例
以下はコードです-
const arr = [2, 4, 7]; const absoluteValuesSumMinimization = (arr = []) => { const res = []; arr.forEach(num => { const sum = arr.reduce((accum, next) => { return accum + Math.abs(next - num); }, 0); res.push(sum); }); const lowest = Math.min(...res); return arr[res.indexOf(lowest)]; }; console.log(absoluteValuesSumMinimization(arr));
出力
以下はコンソールでの出力です-
4
-
JavaScript配列のすべての一意の値を取得するにはどうすればよいですか?
以下は、JavaScript配列内のすべての一意の値を取得するためのコードです- 例 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Document</title> <style>
-
JavaScriptを使用した配列内のネストされたオブジェクト値の合計
以下は、JavaScriptを使用して配列内のネストされたオブジェクト値を合計するコードです- 例 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Document</title> <st