1.篮球赛,10人,每个人有一个战斗力n1-n10 分成两组(人数相等),战斗力差值最小

当前位置:   article > 正文

穷举DFS算法_js算法题 篮球比赛最小战力差

js算法题 篮球比赛最小战力差
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8" />
  5. </head>
  6. <body>
  7. <h1>
  8. 1.篮球赛,10人,每个人有一个战斗力n1-n10
  9. 分成两组(人数相等),战斗力差值最小
  10. </h1>
  11. <script type="text/javascript">
  12. //输入:10 9 8 7 6 5 4 3 2 1
  13. // 输出:1
  14. let arr = "10 9 8 7 6 5 4 3 2 1 8 2".split(" ");
  15. let total = arr.reduce((acc, item) => {
  16. return acc + +item;
  17. }, 0);
  18. let res = total;
  19. function dfs(doArr, used, arr) {
  20. if (doArr.length === arr.length / 2) {
  21. let tmpTotal = doArr.reduce((acc, item) => {
  22. return acc + +item;
  23. }, 0);
  24. res = Math.min(Math.abs(tmpTotal * 2 - total), res);
  25. } else {
  26. for (let i = 0; i < arr.length; i++) {
  27. if (!used[i]) {
  28. used[i] = true;
  29. doArr.push(arr[i]);
  30. dfs(doArr, used, arr);
  31. used[i] = false;
  32. doArr.pop();
  33. }
  34. }
  35. }
  36. }
  37. dfs([], {}, arr);
  38. console.log(res);
  39. </script>
  40. </body>
  41. </html>

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/article/detail/42611?site
推荐阅读
相关标签
  

闽ICP备14008679号