1399. 统计最大组的数目 - 力扣(LeetCode)
给你一个整数 n
。请你先求出从 1
到 n
的每个整数 10 进制表示下的数位和(每一位上的数字相加),然后把数位和相等的数字放到同一个组中。
请你统计每个组中的数字数目,并返回数字数目并列最多的组有多少个。
思路:
哈希表维护数位和
MaxVal维护最大数位和长度
判定最大数位和长度的组数
class Solution {
public:int countLargestGroup(int n) {//哈希表维护数位和//MaxVal维护最大数位和长度unordered_map<int,int>mp;int maxVal=0;for(int i=1;i<=n;i++){int CurNum=0;int t=i;while(t){CurNum+=t%10;t/=10;}++mp[CurNum];maxVal=max(maxVal,mp[CurNum]);}//ans维护最大数位和长度下个数int ans=0;for(auto &p:mp){if(p.second==maxVal){ans++;}}return maxVal;}
};