你能帮我吗?
我有问题:
如何返回一个尽可能小的数字,该数字可以通过将所有接收到的数字进行字符串连接来构造。
示例:
a。输入:[1、2、3]->输出:123
b。输入:[1、10、100]->输出:100101
c。输入:[100,97,23,1]->输出:10012397
d。输入:[9041,376,5,10]->输出:1037659041感谢您的帮助
答案 0 :(得分:0)
这是我解决问题的代码(我希望这可以帮助需要它的任何人) 基于线程:
感谢@DavidWinder 关于排列线索
function submit()
{
var num = [];
var smallest = 9;
//get the numbers
$('input[name^="num"]').each(function()
{
if ($(this).val() != '')
{
num.push($(this).val());
}
});
var letters = num.toString();
var size = num.length;
$('#result').empty();
var testResults = permutate.getPermutations(letters, size);
var min = 99999999;
$.each(testResults, function(index, item)
{
// $('#result').append("<li>" + item + "</li>");
if (item < min)
{
min = item;
}
});
$('#result').html("Smallest possible number = " + min);
}
//====================================================
var permutate = (function()
{
var results = [];
function doPermute(input, output, used, size, level)
{
if (size == level)
{
var word = output.join('');
results.push(word);
return;
}
level++;
for (var i = 0; i < input.length; i++)
{
if (used[i] === true)
{
continue;
}
used[i] = true;
output.push(input[i]);
doPermute(input, output, used, size, level);
used[i] = false;
output.pop();
}
}
return {
getPermutations: function(input, size)
{
var chars = input.split(',');
var output = [];
var used = new Array(chars.length);
doPermute(chars, output, used, size, 0);
return results;
}
}
})();
<!DOCTYPE html>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
</head>
<body>
<input type="text" name="num[1]"> <br />
<input type="text" value=74 name="num[2]"> <br />
<input type="text" name="num[1]"> <br />
<input type="text" value=36 name="num[2]"> <br />
<input type="text" name="num[1]"> <br />
<input type="text" name="num[2]"> <br />
<input type="text" value=51 name="num[1]"> <br />
<input type="text" value=98 name="num[2]"> <br />
<input type="text" name="num[1]"> <br />
<input type="text" name="num[2]"> <br />
<input type="submit" id="submit" onclick="submit()">
<div id='result'>Result</div>
</body>
</html>