【原创】查找字符的出现次数(二)

哈哈,今天同学给来一段代码

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....

原文地址:https://www.cnblogs.com/H-Col/p/4409356.html