1399 統計最大組的數目

2021-10-07 11:20:47 字數 1021 閱讀 1007

給你乙個整數 n 。請你先求出從 1 到 n 的每個整數 10 進製表示下的數字和(每一位上的數字相加),然後把數字和相等的數字放到同乙個組中。

請你統計每個組中的數字數目,並返回數字數目並列最多的組有多少個。

示例 1:

輸入:n = 13

輸出:4

解釋:總共有 9 個組,將 1 到 13 按數字求和後這些組分別是:

[1,10],[2,11],[3,12],[4,13],[5],[6],[7],[8],[9]。總共有 4 個組擁有的數字並列最多。

示例 2:

輸入:n = 2

輸出:2

解釋:總共有 2 個大小為 1 的組 [1],[2]。

示例 3:

輸入:n = 15

輸出:6

示例 4:

輸入:n = 24

輸出:5

思路:沒有想出來簡單的方法,只能是遍歷計數,可以使用雜湊表

使用map還是unordered_map

當我看見他倆的時候,感覺他們是乙個東西,怎麼可能,不是的,雖然他們都是有鍵值對,但是map的底層的資料結構是紅黑樹,就是有序的,unorderde_map是雜湊表,也就是無序的,那和hash_map啥區別,unorderd_map是c++11的時候就引入了,而hash_map沒有,所以盡量使用unordered,

map的插入,查詢等都是o(logn),雜湊表的查詢時間是o(1),但是不一定他就快,因為他還要建立雜湊表,還會耗時間,

map使用紅黑樹,空間佔的蠻大的,但他是有序的

應該在查詢的時候,尤其是海量資料最好用unordered_map

該題,就是把各位數的和加起來,當作鍵,值存的是數目,記錄最大的數

然後再迴圈記錄該最大的數對應的個數

class solution 

c[s]++;

if(maxn}

int num = 0;

for(int i=0;i}

return num;

}};

1399 統計最大組的數目

給你乙個整數 n 請你先求出從 1 到 n 的每個整數 10 進製表示下的數字和 每一位上的數字相加 然後把數字和相等的數字放到同乙個組中。請你統計每個組中的數字數目,並返回數字數目並列最多的組有多少個。示例 1 輸入 n 13 輸出 4 解釋 總共有 9 個組,將 1 到 13 按數字求和後這些組...

力扣 1399 統計最大組的數目

給你乙個整數 n 請你先求出從 1 到 n 的每個整數 10 進製表示下的數字和 每一位上的數字相加 然後把數字和相等的數字放到同乙個組中。請你統計每個組中的數字數目,並返回數字數目並列最多的組有多少個。示例 1 輸入 n 13 輸出 4 解釋 總共有 9 個組,將 1 到 13 按數字求和後這些組...

leetcode 1399 統計最大組的數目

給你乙個整數 n 請你先求出從 1 到 n 的每個整數 10 進製表示下的數字和 每一位上的數字相加 然後把數字和相等的數字放到同乙個組中。請你統計每個組中的數字數目,並返回數字數目並列最多的組有多少個。示例 1 輸入 n 13 輸出 4 解釋 總共有 9 個組,將 1 到 13 按數字求和後這些組...