中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

JavaScript怎么解決優勢洗牌算法題

發布時間:2022-01-05 16:21:14 來源:億速云 閱讀:142 作者:iii 欄目:大數據

本篇內容介紹了“JavaScript怎么解決優勢洗牌算法題”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

題目描述:

給定兩個大小相等的數組 A 和 B,A 相對于 B 的優勢可以用滿足 A[i] > B[i] 的索引 i 的數目來描述。返回 A 的任意排列,使其相對于 B 的優勢最大化。

示例 1:

輸入:A = [2,7,11,15], B = [1,10,4,11]
輸出:[2,11,7,15]

示例2

輸入:A = [12,24,8,32], B = [13,25,32,11]
輸出:[24,32,8,12]

我們用示例2來說明,A、B兩個數組長度一樣,將A數組進行排列,讓后逐項與B數組進行比較, A[i]>B[i]的一分,使分數最大化。

看起來很簡單,但是該如何思考呢?從哪里下手呢?

我們可以先將A數組進行排序,從小到大進行排序,排序完成后,循環遍歷B數組,用B數組中的每一項,去A數組中查找比這一項剛好大一點的數據,查找到后,將其放入到對應位置,如果查找不到從排序完成的A數組中抽出最小的放到當前位置。

原理類似于田忌賽馬,用A數組中的最小的數據,對沖B數組中的比較大的數據,剩下A數組中的數據挑選略大于B數組中的數據。代碼如下:

function comp(arr1, arr2) {
 var arr = [];
 arr1.sort(function(a, b) {
   return a - b;
 });
 arr2.forEach(function(item) {
   var index = arr1.findIndex(function(_item) {
     return _item > item;
   });
   if (index > -1) {
     arr.push(arr1.splice(index, 1)[0]);
   } else {
     arr.push(arr1.splice(0, 1)[0]);
   }
 });
 return arr;
}

“JavaScript怎么解決優勢洗牌算法題”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

梁平县| 通江县| 闸北区| 阿尔山市| 安达市| 安泽县| 蓬安县| 土默特右旗| 秭归县| 萨嘎县| 遵化市| 南昌市| 汕尾市| 若羌县| 大同市| 微博| 巴林左旗| 永和县| 彰武县| 邯郸县| 临汾市| 高台县| 旬邑县| 惠来县| 南丰县| 安平县| 葵青区| 元谋县| 雷州市| 太谷县| 巫溪县| 呼伦贝尔市| 特克斯县| 定结县| 土默特右旗| 兰坪| 兖州市| 通州市| 大理市| 尼勒克县| 呼图壁县|