吹牛逼的正确方式

附件算法

  

 

 

 

 

一、代码简洁、可读性设计模式

二、考虑时间O、空间复杂度数据结构

 

一、业务函数向通常工具函数的抽象,避免重复造轮子dom

二、经典问题都已有“最佳”解(学习设计模式、数据结构算法)函数

  写法已经相对最优、较高人效工具

 

一、本身平时固然要造足够多的轮子单元测试

// 剩余7人瓜分34鲜币,每一个人得到鲜币数随机得到

// 方案1: 14个留出来,每人至少2个

/*
*
*total 总数                 物品数
*person 被分配人数           容器数
*least  每一个人最少分配几个    保底数
*
*业务----> 抽象  ---> 脱离业务的工具函数
*算法最优  时间复杂度O最小

先实现再优化,注意边界条件


代码编写过程 须要单元测试和eslint语法检测
代码执行结果须要  可视化配合看效果
*/
function random(total = 34, person = 7, least = 2){
  let reserve = person * least; //14
  if(total < reserve){
    console.error("参数不合法")
  }
  let result = new Array(person).fill(least)
   
  let distribution = total - reserve; //20

for(let i = 0; i < person; i++){
    let cur = Math.floor(Math.random()*distribution)
  result[i] = cur+least

  if(distribution - cur <= 0){
    break;
  }else{
    distribution = distribution - cur
  }
}


  return result;
}
相关文章
相关标签/搜索