首页 > 试题广场 >

最大字母矩阵

[编程题]最大字母矩阵
  • 热度指数:2342 时间限制:C/C++ 3秒,其他语言6秒 空间限制:C/C++ 32M,其他语言64M
  • 算法知识视频讲解

给定一个string数组dic,代表单词列表,同时给定列表的长度n,请返回最大子矩阵的面积,其中子矩阵中的行和列相同,且有相同字母组成。保证单词的大小小于等于50,且某一长度的串的数量小于等于12。

测试样例:
["aaa","aaa","aaa","bb","bb"]
返回:9
这题目把我看蒙了,我想了很多,比如{abcd,abcd,abcd,abcd,aa,bb,cc,dd}最大是8还是16.。。。我看了题解后才发现题目的意思是找重复单词构成的最大矩阵面积。
//能够组成矩阵的必定是单词一样的
	 public int findAlphaMatrix(String[] dic, int n) {
	        // write code here
		 //利用hashmap统计重复单词数,再从中挑出能组成矩阵的最大值
		 Map<String, Integer> hash=new HashMap<String, Integer>();
		 int Max=Integer.MIN_VALUE;
		 for (int i = 0; i < n; i++) {
			if (hash.containsKey(dic[i])) {
				hash.put(dic[i], hash.get(dic[i])+1);
			}else {
				hash.put(dic[i], 1);
			}
			Max=Math.max(Max,dic[i].length()*hash.get(dic[i]) );
		}
		 return Max;
	    }


发表于 2020-06-18 15:27:10 回复(0)

问题信息

难度:
1条回答 13369浏览

热门推荐

通过挑战的用户

查看代码