快速上手Linux 玩转典型应用

361 阅读1分钟

课程地址:http://icourse8.com/linux_yingyong.html#_pp=2_323
  • 第1章 课程介绍
  • 第2章 Linux简介
  • 第3章 CentOs 的安装
  • 第4章 准备工作
  • 第5章 远程连接SSH专题
  • 第6章 Linux常用命令讲解
  • 第7章 WebServer安装和配置讲解
  • 第8章 数据库服务
  • 第9章 缓存服务
  • 第10章 Git安装和使用
  • 第11章 Php框架TP5,Lavaral Yii2.0 环境配置
  • 第12章 Java运行环境配置
  • 第13章 Python运行环境
  • 第14章 服务管理
  • 第15章 监控神器Zabbix
  • 第16章 课程总结

/**
 * @param {number[]} nums
 * @return {number[]}
 */
function getLargestDivisibleSubSet(end,nums,memo) {
  if(memo[end]) {
    return memo[end];
  }
  
  if(nums.length===0) {
    return [];
  }
  
  if(end===0) {
    return [nums[0]];
  }
  
  const targetNum=nums[end];
  let ret=[];
  let maxLen=0;
  for(let i=end-1;i>=0;i--) {
    const tempResult=getLargestDivisibleSubSet(i,nums,memo);
    if(tempResult.every(n=>targetNum%n===0) && tempResult.length>maxLen) {
      ret=tempResult;
      maxLen=tempResult.length;
    }
  }
  
  ret.push(targetNum);
  memo[end]=ret.slice();
  return ret;
}

var largestDivisibleSubset = function(nums) {
  nums.sort((a,b)=>a-b);
  // console.log(nums);
  const memo=new Array(nums.length).fill(null);
  let ret=[];
  let maxLen=0;
  for(let i=0;i<nums.length;i++) {
    const result=getLargestDivisibleSubSet(i,nums,memo);
    if(maxLen<result.length) {
      maxLen=result.length;
      ret=result;
    }
  }
 
  return ret;
};