[TOC]
一半
1 | class Solution { |
1/3
1 | class Solution { |
n/k
左神的代码写的很好,时间复杂度是O(N*K),额外空间复杂度O(K),用map集合保存K个不同的值。一、如果map的大小不超过K,遍历到相同的,value加1,不同的,添加进去。用map.containskey判断是否在容器中,比用数组方便。
二、如果map大小达到K,遍历到相同的,所有键的值减1,如果值变成0,要删除。这时候引出一全体键值都减1的函数,左神用了遍历map,如果要删除的键放进一个链表里。
三、判断map中剩下的值出现次数是否大于N/K
1 | public class hello {//100 999 |