卡码网Java基础课--哈希表基础(1)--出现频率最高的字母例题
在刷题的时候你会发现对于数组和字符串的题目经常会用到哈希表这个知识点。那么什么是哈希表或者说哈希表的定义又是啥如果你去网上查会有很多关于哈希表的定义这里我们不再阐述哈希表的定义。哈希表来解决问题的时候一般选择以下三种数据结构。数组set集合map映射本篇先说数组通过数组来使用哈希表的知识也就可以说是哈希数组什么哈希数组举个例子给定一个数组A根据数组A来解决一个问题。为解决问题我们 新建一个数组B把数组A的值作为数组B的索引数组B就是哈希数组。通俗的讲哈希数组就是把一个数组的值作为自己的索引这个数组就是哈希数组后续对哈希数组进行什么操作根据题意进行模拟就行。什么时候使用哈希表这个知识点呢大多数情况下当题目中出现重复元素的时候就应该考虑是否可以使用哈希表来解决问题。例题出现频率最高的字母。这道例题很好的诠释了哈希表的基本概念以及如何通过数组这个数据结构来使用哈希表的知识并解决问题。题目描述给定一个只包含小写字母的字符串统计字符串中每个字母出现的频率并找出出现频率最高的字母如果最高频率的字母有多个输出字典序靠前的那个字母。输入描述包含多组测试数据每组测试数据占一行。输出描述有多组输出每组输出占一行。输入示例2 abcdeef aabbccddeeff输出示例e a例题中给出一个字符串要求统计出现频率最高的字符。思路如果把每个字符的总数都记录下来再进行比较那么总数最大的就是我们所求的如果存在多个出现次数相同的字符那就输出英文字母表中靠前的就可以那么怎么记录每个字符出现的次数并且能把字符和出现的次数对应上呢这就用到哈希表的知识点。方法新建一个数组res数组长度26数组索引为012···25我们让0代表a1代表b以此类推25代表zres[0]的值就代表a出现的次数res[1]的值就代表b出现的次数如果a的次数和b的次数相同那就输出a到此问题就解决。上面我们提到哈希数组就是把一个数组的值作为自己的索引这里是字符串把字符串转换成数组就可以道理都是一样的例如str [a,b,c,d,e]对于res来说res的索引为012···这里0对应a1对应b这里有一种对应关系这不就是把str的值当成res的索引。如果还不能理解把题意换一下求一个整数数组中数字出现次数最多的数字数组元素仅包含0~9即ans[0,3,4,2,1]同理res的索引为012等这里的012就是ans的值只不过相比上面的strans是直接将数组值作为res的索引str是间接的将数组值作为res的索引。以下是完整Java代码import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scanner new Scanner(System.in); int n scanner.nextInt(); for (int i 0; i n; i) { String input scanner.next(); char mostFrequentChar findMostFrequentChar(input); // 调用方法获取字符 System.out.println(mostFrequentChar); } scanner.close(); } // 找到最大频次字符的方法 public static char findMostFrequentChar(String input) { int[] frequency new int[26]; for (char c : input.toCharArray()) { frequency[c - a]; } char mostFrequentChar a; int maxFrequency frequency[0]; for (int i 1; i 26; i) { if (frequency[i] maxFrequency) { maxFrequency frequency[i]; mostFrequentChar (char) (a i); } } return mostFrequentChar; } }如果给出的例题不好理解请参考如下例题力扣面试题 01.01.判定字符是否唯一。题目要求实现一个算法确定一个字符串s的所有字符是否全都不同。示例 1输入:s leetcode输出:false示例 2输入:s abc输出:true限制0 len(s) 100s[i]仅包含小写字母解题思路和方法是一样的不再阐述以下是C语言完整代码bool isUnique(char* astr){ int *result (int *)calloc(26,sizeof(int)); int len strlen(astr); int i; for(i0;ilen;i){ result[astr[i] - 97] result[astr[i] - 97] 1; } for(i0;i26;i){ if(result[i] 1){ return false; } } return true; }附以上内容中第一道例题和例题代码均来自卡码网若有侵权将第一时间内删除。其余内容为自己撰写若有错误将在第一时间进行修改。

相关新闻

职业培训开班日设计:提升学员参与度的关键策略

职业培训开班日设计:提升学员参与度的关键策略

1. 项目背景与核心价值"八期-day01-开班"这个标题看似简单,实际上蕴含着一个完整培训项目的启动环节。作为项目管理者,我参与过多次类似的开班仪式设计,深知这个环节对于整个培训周期的重要性。开班日不仅是简单的见面会&#xff0…

2026/10/20 18:46:05 阅读更多 →
HarmonyOS应用开发实战:萌宠日记 - 保存按钮与底部操作栏

HarmonyOS应用开发实战:萌宠日记 - 保存按钮与底部操作栏

HarmonyOS应用开发实战:萌宠日记 - 保存按钮与底部操作栏 前言 保存按钮 是日记编辑器的 最终操作入口,用户完成所有输入后,通过点击保存按钮将日记数据持久化。在 萌宠日记 的日记编辑器中,底部操作栏包含 社交分享按钮&#xf…

2026/10/20 4:28:15 阅读更多 →
2026科技创新的国内EMBA中立择校测评

2026科技创新的国内EMBA中立择校测评

民营企业家、企业创始人选读EMBA,大多纠结三大问题:课程是否贴合科创转型、圈层是否匹配企业发展、资源能否助力出海与数字化升级。本文从全球办学排名、院校办学定位、课程体系、学员圈层、产业资源五大维度,对科技创新的国内EMBA主流项目做…

2026/10/20 16:37:30 阅读更多 →

最新新闻

Canvas截取视频首帧作为封面:前端零成本方案与实战避坑

Canvas截取视频首帧作为封面:前端零成本方案与实战避坑

1. 为什么视频封面首帧截取是个高频刚需做过内容平台或者带视频功能的项目的人都知道&#xff0c;视频列表页如果直接放一个<video>标签去加载&#xff0c;页面性能会崩得很难看。几十个视频同时开始加载元数据和首帧&#xff0c;带宽和内存直接爆炸&#xff0c;尤其在移…

2026/10/20 21:34:09 阅读更多 →
Linux权限管理指南:普通用户与root的授权、应急恢复与安全实践

Linux权限管理指南:普通用户与root的授权、应急恢复与安全实践

去年有一次我在测试环境里手滑&#xff0c;用root执行了一条带rm -rf的清理命令&#xff0c;变量没展开&#xff0c;差点把整个/usr目录送走。机器倒是救回来了&#xff0c;但从那以后我给自己立了条规矩&#xff1a;能用普通用户干的活&#xff0c;绝不用root&#xff1b;必须…

2026/10/20 21:34:09 阅读更多 →
Agent工具工程:从调用到契约的可靠性设计

Agent工具工程:从调用到契约的可靠性设计

1. 这不是“AI工具课”&#xff0c;而是一场对工程思维的重新校准“哥伦比亚大学 Agentic Engineering 第 5 讲&#xff1a;221 分钟讲透 Agent 工具”——这个标题刚出现在某技术社区时&#xff0c;我第一反应是点开前先关掉所有通知。不是因为不感兴趣&#xff0c;恰恰相反&a…

2026/10/20 21:34:09 阅读更多 →
RNN十年演进:从LSTM到Transformer再到线性注意力回归

RNN十年演进:从LSTM到Transformer再到线性注意力回归

做序列建模这些年&#xff0c;我是眼看着RNN从主角变成配角&#xff0c;又在最近两年换了一副面孔回到舞台中央的。2014年那会儿&#xff0c;我在一个文本分类项目里用单层LSTM调参&#xff0c;调参基本靠猜&#xff0c;训练基本靠忍&#xff0c;一个模型跑一个晚上是家常便饭。…

2026/10/20 21:34:09 阅读更多 →
MATLAB牛耕法全覆盖路径规划:有障碍物时的区域分解与绕行

MATLAB牛耕法全覆盖路径规划:有障碍物时的区域分解与绕行

简介&#xff1a;本资源面向机器人路径规划初学者与MATLAB仿真开发者&#xff0c;聚焦全覆盖算法中牛耕法在障碍物环境下的实现与回退处理&#xff0c;帮助读者理解如何让作业设备在复杂区域内完成无遗漏覆盖。包内共3个文件&#xff0c;均为m脚本&#xff0c;压缩包约2KB&…

2026/10/20 21:34:09 阅读更多 →
AI平台选型指南:从通用对话到开源自部署的实战策略

AI平台选型指南:从通用对话到开源自部署的实战策略

1. 主流AI平台的全景地图与选型逻辑1.1 为什么现在聊“AI平台”比聊“AI模型”更实际过去一年我接触了不少团队&#xff0c;从几个人的小工作室到上百人的产品线&#xff0c;大家问得最多的问题早就不是“哪个模型最强”&#xff0c;而是“我该把活儿交给哪个平台”。这个转变很…

2026/10/20 21:33:02 阅读更多 →

日新闻

CLRC663芯片Pin-to-Pin替代实战:从评估到量产全记录

CLRC663芯片Pin-to-Pin替代实战:从评估到量产全记录

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 1:01:30 阅读更多 →
ESP32舵机控制指南:原理、多路驱动与避坑实战

ESP32舵机控制指南:原理、多路驱动与避坑实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 1:01:30 阅读更多 →
位移法实现一阶低通滤波:单片机ADC采样降噪实战

位移法实现一阶低通滤波:单片机ADC采样降噪实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 1:01:30 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型&#xff08;GMM&#xff09;的语音识别系统&#xff0c;很多人第一反应就是一堆数学公式&#xff0c;觉得门槛很高。但如果你真的在MATLAB里把它落地跑通&#xff0c;会发现核心其实就是三件事&#xff1a;把声音变成特征向量&#xff0c;用GMM给每个类别…

2026/10/20 10:02:13 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人&#xff0c;但落到具体操作上&#xff0c;无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程&#xff1a;对图像做反白、改调色板、彩色转灰度&#xff0c;最后把像素数据导出成txt文件。单看每一…

2026/10/20 20:43:59 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词&#xff0c;你会发现一个很有意思的现象&#xff1a;每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型&#xff0c;有人指的是运动控制系统&#xff0c;还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/20 2:50:50 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 10:02:08 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 9:50:17 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 9:50:45 阅读更多 →