哈哈,今天同学给来一段代码
private Map<Integer, Integer> mFuction2(int n[]){ Map<Integer,Integer> map = new HashMap<Integer,Integer>(); for(int i=0;i<n.length;i++){ int key = n[i]; Integer value = map.get(key); if(value != null){ map.put(key, ++value); }else{ map.put(key, 1); } timeKeeper1++; } return map; }
看完之后简直羡慕嫉妒恨啊,这简洁得。。佩服佩服
我为什么要加个List呢?(完全手贱)
为什么我的那个算法的复杂度会那么差呢?
这种思想的算法复杂度就是由字符串的长度来决定的,一串字符,每个字符都只用一次判断,有则value++,无则put(key,1)
还有如果加个cache块能优化了么,为什么要加cache块?(加毛的cache块啊,逗比啊!map.get(key)就OK了,除非去优化get算法,缩短查找时间,这个复杂度就这样了。。目前我就只能想到这了。。)
WTF....