hszy00232/developExperience

算法练习 - 计算最大值

Opened this issue · 0 comments

/**
 * 通过递归计算最大值
 * @param {array} 数组列表 
 * @returns {number} 最大值
 */
const max1 = arr => {
    if (arr.length === 0) return 0;
    if (arr.length === 1) return arr[0];
    if (arr.length === 2) return arr[0] > arr[1] ? arr[0] : arr[1];
    let subMax = max1(arr.slice(1));
    return arr[0] > subMax ? arr[0] : subMax;
}

/**
 * 通过递归计算最大值
 * @param arr {array} 数组列表
 * @param max {number} 中间临时最大值
 * @returns {number} 最大值
 */
const max2 = (arr, max = 0) => {
    return arr.length === 0 ? max : max2(arr.slice(1), arr[0] > max ? arr[0] : max);
}

// max1([1, 5, 10, 25, 16, 1])