每日一题——LeetCode1399.统计最大组的数目

每日一题——LeetCode1399.统计最大组的数目_第1张图片

 

方法一 个人方法:

 把下位和相同的数字放入同一个数组,并把数组放入下标为下位和的res数组中,同时记录每个数组的长度的最大值

遍历res数组,长度等于max就count+1

var countLargestGroup = function(n) {
    let res=[],max=-1,count=0
    for(let i=1;i<=n;i++){
        let sum=i<10?i:sumDigits(i)
        if(res[sum]===undefined) res[sum]=[]
        res[sum].push(i)
        if(res[sum].length>max) max=res[sum].length
    }
    for(let arr of res){
        if(arr && arr.length===max) count++
    }
   return count
};
function sumDigits(n) {
  let sum = 0;
  while (n) {
    sum += n % 10;
    n = Math.floor(n / 10);
  }
  return sum;
}

消耗时间和内存情况: 

每日一题——LeetCode1399.统计最大组的数目_第2张图片

你可能感兴趣的:(每日一题,javascript,leetcode,算法)