吹牛逼的正確方式

附件算法

  

 

 

 

 

一、代碼簡潔、可讀性設計模式

二、考慮時間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;
}
相關文章
相關標籤/搜索