reduce()、ソートsort()、Math.floor()(鼻門池bj-18110号、lc-153号、912号)


💻コーディングの問題を解く
▶学習内容(Javascript)
reduce()
:配列内の空の要素を除く各要素に対してcallback関数を1回実行します.callback関数には、次の4つのパラメータが適用されます.
:配列の組み込み関数を使用して合計を計算できます.
:パラメータ
1.アキュムレータはコールバックの戻り値を累積します.
2.現在処理する現在の要素
3.処理するcurrentIndexを選択
4.array
:累計計算の結果値を返します.
-sort()
整列sort()は通常文字ソートに使用されます
整列sort(function(a.b){//昇順
return a-b;
});a、bの2つの数字の差が正の値か負の値かを利用して数字を昇順に並べ替える方法です
-Math.floor():与えられた数値と等しいまたは小さい整数の最大数を返す関数
🔎ひょうじゅんもんだい
#18110号で解決しましたac<難易度:3>リンク
解説:極端値が平均値を歪まないようにするため、最大値と最小値を除いて、平均値.30%の切語平均については,上15%,下15%を除き,平均難易度を計算した.20人の投票があれば、最高難易度で投票した3人と最低難易度で投票した3人の投票は平均計算に反映されません.
ex1.
Input:
5
1
5
5
7
8
Output:
6
->5名のうち15%が0.75名、四捨五入が1名となっています.それに伴って解決する.acは,最高難易度と最低難易度の意見のほか,{5,5,7}の平均に対して問題難易度を決定する.
let num = parseInt(prompt());
let cnt = 0;

let arr = [];
cnt = Math.round(num *0.15);
for(let i=0;i<num;i++){
  arr[i] =parseInt(prompt()); 
}

arr.sort(function(a,b){
  return a-b;
});

for(let i=0;i<cnt;i++){
  delete arr[i];
}

for(let i=arr.length-1;i>arr.length-cnt-1;i--){
  delete arr[i];
}

let result = arr.reduce(function add(sum, currValue){
	return sum + currValue;
},0);

let avg = result / (arr.length-(cnt*2)) ;

alert(Math.round(avg));
質問:
1.切り取り平均値を達成するために、cnt変数に合計15%の人数を加える.
2.n回入力の難易度を昇順に並べます.
3.最低点の15%と最低点の15%の値を削除します.
4.残りの難易度を平均内最終平均難易度とする.
🔎leetcode
#153.Find Minimum in Rotated SordArray<難易度:3>
リンク
解説:n昇順に並べた長さが1とnの間に並べられた回転数を想定する.一意の要素の整列回転配列numsが与えられた場合、その配列の最小要素が返されます.
ex1.
Input: nums = [3,4,5,1,2]
Output: 1
Explanation: The original array was [1,2,3,4,5] rotated 3 times.
ex2.
Input: nums = [4,5,6,7,0,1,2]
Output: 0
Explanation: The original array was [0,1,2,4,5,6,7] and it was rotated 4 times.
ex.3
Input: nums = [11,13,15,17]
Output: 11
Explanation: The original array was [11,13,15,17] and it was rotated 4 times.
function findMin(nums) {
  let l = 0;
  let r = nums.length - 1;
  while (l < r) {
    const m = Math.floor((l + r) / 2);
    if (nums[m] > nums[r]) l = m + 1;
    else r = m;
  }
  return nums[l];
}
  
何度回転したかは求めにくいが,この配列の最小要素を求めることは可能である.
問題を完全に理解していない.
左右の値は大きさの比較で表します.
#912.Sort an Array『難易度:1』リンク
解説:numsの要素を昇順に並べた問題です.
ex1.
Input: nums = [5,2,3,1]
Output: [1,2,3,5]
ex2.
Input: nums = [5,1,1,2,0,0]
Output: [0,0,1,1,2,5]
問題を解く
var sortArray = function(nums) {
  nums.sort(function(a,b){
  return a-b;                
  });
   return nums;
};
sort関数を用いると,昇順で容易に実現できる.でもJavaScriptではsort(function(a,b){return a-b;});正の整数を昇順にソートするには、使用します.
解決すべき問題
これから解決すべき問題