TypeScript新手教程之基础算法

目录大纲

  • 冒泡排序 + 数组去重
    • 代码示例
  • 零钱兑换
    • 代码示例
  • 爬楼梯
    • 代码示例
  • 猜数字
    • 代码示例

冒泡排序 + 数组去重

代码示例

//排序 去重
let arrs = [2,4,6,8,10,7,6,5,4,3,2,1,9];
let lm;
// 遍历
for(let i=0;i<arrs.length -1;i++){
    for(let j = i+1;j<arrs.length;j++){
        //去重
        if (arrs[j] == arrs[i]){
            arrs.splice(j,1);
        }
        //排序
        if (arrs[i] > arrs[j]) {
            lm = arrs[i];
            arrs[i] = arrs[j];
            arrs[j] = lm;
        }
    }
}
console.log(arrs);

零钱兑换

TypeScript新手教程之基础算法_第1张图片

代码示例

sliverr(10);
function sliverr(amount) {
    var coins = [1, 3, 5, 7, 9];
    var max = Math.max(...coins);
    var mini = 0;
    var diff = 0;
    var count = 1;
    var sums = [];

    //类型为数值类型并且不为零
    if (amount == 0 || typeof (amount) != 'number'){
        return 'amount Error'; 
    } 

    //始终保持max不大于amount
    while (max > amount) {
        coins.splice(coins.indexOf(max), 1);
        max = Math.max(...coins);
    }
    //计入组合
    sums.push(max);
    //循环组合
    while (max < amount) {
        diff = amount - max;
        mini = Math.max(...coins);
        while (mini > diff) {
            coins.splice(coins.indexOf(max), 1);
            mini = Math.max(...coins);
        }
        count++;
        sums.push(mini);
        max = max + mini;
    }

    console.log(max, '组合: ' + sums, ' 总次数: ' + count);
}

爬楼梯

代码示例

function climbStairs(n){
	//递归调用 最后结果等于1 或者2 表示到山顶 结束
    return (n == 1 || n == 2) ? n : climbStairs(n - 2) + climbStairs(n - 1);
}
console.log(climbStairs(10));

猜数字

代码示例

function guessNumber(n){
    var num = Math.round(Math.random()*10);
    return n>num?'max':(n<num?'mini':'bingo');
}
console.log(guessNumber(9));

你可能感兴趣的:(typescript)