1、全排列
function Swap(arr, i, j) {
var tmp = arr[i];
arr[i] = arr[j];
arr[j] = tmp;
}
function Arrange(arr, index) {
var len = arr.length;
if (len == 0) {
console.log("Useage error");
return;
} else if (len == index) {
console.log(arr.join(''));
return;
} else if (len >= 3) {
for (var i = index; i <len; i++) {
Swap(arr, index, i);
var j = index+1;
Arrange(arr, j);
Swap(arr, i, index);
}
} else if (len == 1) {
console.log(arr[0]);
return;
} else if (len == 2) {
console.log(arr[0] + arr[1] + '\n' + arr[1] + arr[0]);
return;
}
}
2、字符串子串之和最大
function MaxSum(arr) {
var len,nStart,nAll;
if (!Array.isArray(arr) && (len = arr.length) >= 2) {
throw Error("parm arr is Eror");
}
nStart = arr[0], nAll = arr[0];
for (var i = 1; i < len; i++) {
nStart = Math.max(arr[i], nStart + arr[i]);
nAll = Math.max(nStart, nAll);
}
return nAll;
}