如何排列数字以获得最大值?

如何排列数字以获得最大值?

如何排列数字以得到最大值?

排列数字以得到最大值的算法:

1. 排列组合

  • 将数组中的第一个数字弹出。
  • 对剩余数组进行排列
  • 将第一个数字与其他所有排列组合。
  • 重复上述步骤,直到所有数组都排列完毕。

2. 排序

  • 遍历所有排列好的数组,并将它们按降序排列
  • 找到最大值并返回。

以下 javascript 代码实现了上述算法:

//排列组合
function permutate(array, permutatedArray) {
  if (!permutatedArray) {
    permutatedArray = [];
  }
  if (array.length > 1) {
    var elementCur = array.shift();
    permutate(array, permutatedArray);
    var permutatedArrayLen = permutatedArray.length;
    for (var j = 0; j < permutatedArrayLen; j++) {
      var p = permutatedArray.shift();
      for (var i = 0; i <= p.length; i++) {
        var r = p.slice(0);
        r.splice(i, 0, elementCur);
        permutatedArray.push(r)
      }
    }
  } else {
    permutatedArray.push([array[0]]);
  }
  return permutatedArray;
} 

//排序
function orderBy(arr){
  var sort = [];
  permutate(arr, sort);

  var max = sort[0].join('');
  for(var i = 0; i < sort.length; i++ ){
    var item = sort[i].join('');
    if(max < item){
      max = item;
    }
  }
  return max;
}

var arr = [ 6, 68, 634, 6270];
console.log( orderBy(arr)) //6866346270

以上就是如何排列数字以获得最大值?的详细内容,更多请关注其它相关文章!