news 2026/4/3 4:59:50

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/3/27 12:07:53

py连接Redis

与mongo和mysql不同&#xff0c;redis多用于存储中间层&#xff0c;目前我多用于查重去重&#xff0c;我们需要安装一个库&#xff1a; pip install redis之前的aioredis合并到redis中了 同步操作 建立连接 import redis # 同步操作都这样导包 client_syn redis.Redis(host&q…

作者头像 李华
网站建设 2026/4/1 1:41:02

35、探索RDF与CDF:网络数据处理的新视角

探索RDF与CDF:网络数据处理的新视角 1. RDF代码验证 RDF(Resource Description Framework)作为一种用于描述网络资源元数据的语言,其代码的验证至关重要。以下将详细介绍如何使用W3C的在线RDF验证服务来验证RDF代码。 1.1 验证步骤 访问验证服务 :打开浏览器,访问 …

作者头像 李华
网站建设 2026/4/3 1:34:41

40、深入了解WSDL与SOAP协议

深入了解WSDL与SOAP协议 1. WSDL文件结尾 在定义完 <service> 元素后,会插入最后一行代码: </definitions>这最后一行代码用于关闭GetLocalTime服务的WSDL文档文件。通过对示例WSDL文档文件的探究,我们发现 GetTime 操作无需输入参数,会以字符串形式返…

作者头像 李华
网站建设 2026/3/27 15:36:18

5分钟精通SMU调试:深度挖掘AMD Ryzen处理器潜能的专业指南

5分钟精通SMU调试&#xff1a;深度挖掘AMD Ryzen处理器潜能的专业指南 【免费下载链接】SMUDebugTool A dedicated tool to help write/read various parameters of Ryzen-based systems, such as manual overclock, SMU, PCI, CPUID, MSR and Power Table. 项目地址: https:…

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

【初识C语言】循环结构(while语句、do…while语句和for语句)详细解答

系列文章目录 前期文章 【初识C语言】选择结构&#xff08;if语句和switch语句&#xff09;详细解答 文章目录系列文章目录前言一、循环结构的重要性和实现循环结构的重要性循环结构的实现1、用while语句实现循环2、用do…while语句实现循环3、用for语句实现循环二、循环的嵌套…

作者头像 李华
网站建设 2026/3/15 9:58:57

如何快速搭建个人音乐中心:三步实现专业级播放体验

如何快速搭建个人音乐中心&#xff1a;三步实现专业级播放体验 【免费下载链接】MoeKoeMusic 一款开源简洁高颜值的酷狗第三方客户端 An open-source, concise, and aesthetically pleasing third-party client for KuGou that supports Windows / macOS / Linux :electron: …

作者头像 李华