使用地图来查找字符串中每个字符的出现次数的程序的时间复杂度是多少?与其他解决方案相比,使用它是否高效?
for(int i=0; i<s.length(); i++)
{
if(map.containsKey(s.charAt(i)))
map.put(s.charAt(i),map.get(s.charAt(i))+1);
else
map.put(s.charAt(i),1);
}
.put()
和 .get()
的 HashMap
是 O(1)
- 恒定的时间。
该代码的时间复杂度为 O(n)
哪儿 n
的长度 s
.