news 2026/4/27 7:02:49

D.二分查找-进阶——1170. 比较字符串最小字母出现频次

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
D.二分查找-进阶——1170. 比较字符串最小字母出现频次

题目链接:1170. 比较字符串最小字母出现频次(中等)

算法原理:

解法:二分查找-求最右端点

6ms击败44.49%

时间复杂度O(Nlogn)

问题转化:将次数都抽取出来,那么就是说从words的次数数组中找到比queries[i]的次数大的次数的个数

问题转化后跟下面这题基本一模一样👇

D.二分查找-基础——744. 寻找比目标字母大的最小字母

大家如果还是看不懂的话就看下面的笔记吧,从怎么想到的->如何推导的->如何理解,全能解决👇

Java代码:

class Solution { public int[] numSmallerByFrequency(String[] queries, String[] words) { //问题转化:将次数都抽取出来,那么就是说从words的次数数组中找到比queries[i]的次数大的次数的个数 int n=queries.length,m=words.length; int[] nums1=new int[n]; int[] nums2=new int[m]; for(int i=0;i<n;i++) nums1[i]=f(queries[i]); for(int i=0;i<m;i++) nums2[i]=f(words[i]); Arrays.sort(nums2); int[] ret=new int[n]; for(int i=0;i<n;i++){ //设定目标值t int t=nums1[i]; //找最右端点 int left=0,right=m-1; while(left<right){ int mid=left+(right-left+1)/2; if(nums2[mid]>t) right=mid-1; else left=mid; } ret[i]=nums2[left]>t?m:(left+1<m?m-(left+1):0); } return ret; } //计算每个字符串的字数 private int f(String s){ //只有小写字母,可用数组代替哈希表 int[] hash=new int[26]; //记录出现的最小的字母的索引 int min=26; for(char c:s.toCharArray()){ int index=c-'a'; hash[index]++; min=index<min?index:min; } return hash[min]; } }
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/27 7:01:04

终极指南:如何用OpenCore Legacy Patcher让老Mac焕发新生

终极指南&#xff1a;如何用OpenCore Legacy Patcher让老Mac焕发新生 【免费下载链接】OpenCore-Legacy-Patcher 体验与之前一样的macOS 项目地址: https://gitcode.com/GitHub_Trending/op/OpenCore-Legacy-Patcher 还在为你的老Mac无法升级到最新系统而烦恼吗&#xf…

作者头像 李华
网站建设 2026/4/25 22:37:40

EventBus源码主要流程解析

首先从最基本的EventBus类的register()看实现逻辑&#xff1a;1. 订阅事件通过一个SubscriberMethodFinder类查找对应订阅的方法&#xff0c;然后进行订阅。public void register(Object subscriber) {if (AndroidDependenciesDetector.isAndroidSDKAvailable() && !An…

作者头像 李华
网站建设 2026/4/26 3:43:54

游戏帧率优化大师指南:从基础配置到专业调优的完整路径

游戏帧率优化大师指南&#xff1a;从基础配置到专业调优的完整路径 【免费下载链接】genshin-fps-unlock unlocks the 60 fps cap 项目地址: https://gitcode.com/gh_mirrors/ge/genshin-fps-unlock 您是否在热门游戏中遭遇画面卡顿、操作延迟的困扰&#xff1f;当高性能…

作者头像 李华
网站建设 2026/4/23 7:05:40

36、探索CDF:网络频道订阅与管理全攻略

探索CDF:网络频道订阅与管理全攻略 1. 网络订阅的优势与工具对比 在网络浏览中,用户希望具备以下能力: - 更好地跟踪所订阅的网站。 - 当频道或收藏夹更新时接收通知。 - 在线或离线查看系统上的内容。 曾经,Netscape仅提供原始的手动网站/书签检查工具。虽然它最近开…

作者头像 李华
网站建设 2026/4/23 7:05:39

39、深入解析SOAP、UDDI与WSDL:构建Web服务通信基石

深入解析SOAP、UDDI与WSDL:构建Web服务通信基石 1. 引言 在当今的互联网世界中,Web服务的重要性日益凸显。而Simple Object Access Protocol(SOAP)作为一种用于在Web服务之间传递XML消息的流行协议,备受关注。但SOAP并非孤立存在,它是由Web Services Description Langu…

作者头像 李华
网站建设 2026/4/20 2:11:43

42、数学标记语言 MathML 全解析

数学标记语言 MathML 全解析 1. 数学表达式标记的发展与问题 从 20 世纪 80 年代至今,不少文字处理和图形应用程序具备了创建数学和科学表达式的能力,这些表达式通常会被转换为专有格式或图形格式(如 JPEG、GIF 或 TIFF)。然而,这些发展仅能实现视觉呈现,无法传达数学和…

作者头像 李华