博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
LeetCode题解(1170):比较字符串最小字母的出现频次(Python)
阅读量:1901 次
发布时间:2019-04-26

本文共 1543 字,大约阅读时间需要 5 分钟。

题目:(简单)

标签:字符串、数组

解法 时间复杂度 空间复杂度 执行用时
Ans 1 (Python) O ( N × M ) O(N×M) O(N×M) : M为words的长度 O ( M ) O(M) O(M) : M为words的长度 508ms (46.91%)
Ans 2 (Python) O ( N × M ) O(N×M) O(N×M) : M为words的长度 O ( M ) O(M) O(M) : M为words的长度 480ms (61.80%)
Ans 3 (Python) O ( N l o g M ) O(NlogM) O(NlogM): M为words的长度 O ( M ) O(M) O(M): M为words的长度 72ms (99.16%)

解法一(哈希表):

def numSmallerByFrequency(self, queries: List[str], words: List[str]) -> List[int]:    word_num = []    for word in words:        count = collections.Counter(word)        word_num.append(count[sorted(count.keys())[0]])    ans = []    for query in queries:        count = collections.Counter(query)        num = count[sorted(count.keys())[0]]        k = 0        for w in word_num:            if w > num:                k += 1        ans.append(k)    return ans

解法二(优化解法一的最小值出现频次计算方法):

def numSmallerByFrequency(self, queries: List[str], words: List[str]) -> List[int]:    word_num = []    for word in words:        word_num.append(word.count(min(word)))    ans = []    for query in queries:        num = query.count(min(query))        k = 0        for w in word_num:            if w > num:                k += 1        ans.append(k)    return ans

解法三(优化解法二中的查找方法):

def numSmallerByFrequency(self, queries: List[str], words: List[str]) -> List[int]:    words = [word.count(min(word)) for word in words]    words.sort()    ans = []    for query in queries:        num = query.count(min(query))        count = len(words) - bisect.bisect_right(words, num)        ans.append(count)    return ans

转载地址:http://fqgdf.baihongyu.com/

你可能感兴趣的文章
css技巧---电子表体字体引入
查看>>
随笔---如何启动Redis
查看>>
前端技巧:jsonp跨域请求json文件记录以及百度地图的省份和城市坐标在静态服务器上的处理
查看>>
css技巧---menu菜单加new
查看>>
前端技巧:如何让一个div 在另一个div上面显示,却不会影响下一个div的位置?
查看>>
前端技巧:echarts中国地图外边框设置阴影投影效果------荧光效果 随笔
查看>>
前端技巧:echarts中国地图外边框设置阴影投影效果------荧光效果 (2) 带边框 随笔
查看>>
随笔:简单的蒙版加载页面实现
查看>>
处理echarts地图省份坐标重叠的方法
查看>>
获取浏览器可见窗口大小(转载)
查看>>
给文字加一个渐变色
查看>>
使用网格在父元素中水平和垂直地居中定位子元素
查看>>
Box-sizing reset
查看>>
underscore学习笔记一
查看>>
用纯css做一个圆
查看>>
清除浮动Clearfix
查看>>
Elements in iteration expect to have 'v-bind:key' directives问题
查看>>
leetcode -462. Minimum Moves to Equal Array Elements II
查看>>
30分钟彻底弄懂flex布局(本文转自腾讯云加社区,自己收藏学习)
查看>>
谷歌浏览器针对http强制转换为https的问题
查看>>