力扣题目:查找共同字符

devtools/2024/9/20 2:35:46/ 标签: leetcode, 哈希算法, 算法

    力扣题目:查找共同字符

开篇

题目链接:leetcode.cn/problems/find-common-characters/description/" rel="nofollow"> 1002.查找共同字符

题目描述

在这里插入图片描述

代码思路

使用哈希表,记录每一个字母出现的次数,每次更新最小值,寻找最小值不为0到字母,添加到list列表中

代码纯享版

class Solution {public List<String> commonChars(String[] words) {List<String> list = new ArrayList();int[] hash = new int[26];for(int i = 0;  i < words[0].length(); i++){hash[words[0].charAt(i) - 'a']++;}for(int i = 0; i < words.length; i++){int[] temp = new int[26];for(int j = 0; j < words[i].length(); j++){temp[words[i].charAt(j) - 'a']++;}for(int k = 0; k < 26; k++){hash[k] = Math.min(temp[k], hash[k]);}}for (int i = 0; i < 26; i++) {while (hash[i] != 0) { char c= (char) (i+'a');list.add("" + (char) (i+'a'));hash[i]--;}}return list;}
}

代码逐行解析版

class Solution {public List<String> commonChars(String[] words) {List<String> list = new ArrayList(); //用于最后结果的返回int[] hash = new int[26]; //创建hash数组作为字符哈希表(26个字母)for(int i = 0;  i < words[0].length(); i++){ //遍历第一个字符串的所有字符,初始化hash哈希表hash[words[0].charAt(i) - 'a']++; //对每个字符对应的下标加一}for(int i = 0; i < words.length; i++){ //遍历字符串数组words中所有的字符串int[] temp = new int[26]; //临时哈希表for(int j = 0; j < words[i].length(); j++){ //遍历该字符串的所有字符,初始化temp哈希表temp[words[i].charAt(j) - 'a']++;}for(int k = 0; k < 26; k++){ //遍历这两个哈希表,每个字母取哈希表hash[k] = Math.min(temp[k], hash[k]);}}for (int i = 0; i < 26; i++) { //遍历哈希表,对hash哈希表不为0的字符添加到list列表中while (hash[i] != 0) { // 注意这里是while,多个重复的字符char c= (char) (i+'a');list.add("" + (char) (i+'a'));hash[i]--;}}return list;}
}

http://www.ppmy.cn/devtools/23564.html

相关文章

通过matlab对比遗传算法优化前后染色体的变化情况

目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.本算法原理 5.完整程序 1.程序功能描述 通过matlab对比遗传算法优化前后染色体的变化情况. 2.测试软件版本以及运行结果展示 MATLAB2022A版本运行 3.核心程序 ....................................…

全栈从0到1 3D旅游地图标记和轨迹生成

功能演示 演示视频 体验地址 Vercel App 开发技术栈&#xff1a; NextJs&#xff08;前端框架&#xff09;React&#xff08;前端框架&#xff09;TailwindCSS &#xff08;CSS样式&#xff09;echart echart gl &#xff08;地图生成&#xff09;shadui&#xff08;UI组件…

教师演讲与口才培训计划(3篇)

教师演讲与口才培训计划&#xff08;3篇&#xff09; 教师演讲与口才培训计划&#xff08;一&#xff09; 一、培训目标 本培训计划旨在提升教师的演讲与口才能力&#xff0c;使其能够更好地与学生、家长及同行进行有效沟通&#xff0c;增强教学效果&#xff0c;展现教师风采…

CHATGPT对写作业的好处

原文&#xff1a;chatGPT对写作业的好处 - 夸智网 本文目录一览1、chatGPT对写作业的好处2、chatGPT批改作业3、chatGPT完成作业4、chatGPT写作业水平超过大学生5、美国大学生用chatGPT写作业大家好&#xff0c;今天来为您分享chatGPT对写作业的好处的一些知识&#xff0c;本文…

NGINX发布动态页面的方法

一、建立 [rootserver100 html]# vim index.php [rootserver100 html]# pwd /usr/share/nginx/html 二、下载PHP文件 [rootserver100 conf.d]# dnf install php.x86_64 -y 正在更新 Subscription Management 软件仓库。 无法读取客户身份 本系统尚未在权利服务器中注册。可…

学之思考试系统环境启动QA

学之思考试系统环境启动Q&A 目录 学之思考试系统环境启动Q&A后台代码启动失败:前台代码启动失败常见解决方式参考资料后台代码启动失败: 后端代码启动不成功,不能够自动导入maven,配置依赖; 使用idea打开到:\xzs-master\xzs-mysql-master\source\xzs这个路径下;…

一例MFC文件夹病毒的分析

概述 这是一个MFC写的文件夹病毒&#xff0c;通过感染USB设备传播&#xff0c;感染后&#xff0c;会向c2(fecure.info:443)请求指令来执行。 样本的基本信息 Verified: Unsigned Link date: 19:52 2007/7/5 MachineType: 32-bit MD5: 4B463901E5858ADA9FED28FC5…

MATLAB初学者入门(16)—— 图搜索算法

图搜索算法是解决图论中路径查找和图遍历问题的关键工具。这些算法可以找到从一个节点&#xff08;起点&#xff09;到另一个节点&#xff08;终点&#xff09;的路径&#xff0c;或者用于发现图中的结构特征。在MATLAB中&#xff0c;我们可以利用图和网络理论工具箱来实现和使…

Android 学习 鸿蒙HarmonyOS 4.0 第三章(TS的常用基本类型)

写之前先简单提一句。鸿蒙4.0之后呢&#xff0c;主推开发语言&#xff1a;ArkTs&#xff0c;如果你是零基础小白&#xff0c;不建议直接学习鸿蒙os开发&#xff0c;可以先从ts&#xff1a;TypeScript来开始学习。 编程语言介绍&#xff1a; ArkTs 是鸿蒙os 优选的主力应用开发…

机器学习之增强学习DQN(Deep Q Network)

增强学习(Reinforcement Learning, RL)中的Deep Q Network (DQN)是一种用于学习动作选择的深度学习模型。它是基于Q-learning算法的一种扩展,通过使用深度神经网络来估计Q值函数,从而实现对复杂环境中动作的学习和决策。 下面是一般情况下实现DQN的一些步骤: 定义状态空间和…

ChatGPT API - 笔记

1 新手如何用Python玩转ChatGPT API,详细讲解 新手如何用Python玩转ChatGPT API,详细讲解-Django社区,Django中文网,django教程,Django! import time import requestsOPENAI_API_KEY = "****" proxy = "127.0.0.1:7890" # 你需要添加你的代理,懂得都…

前端更优雅的使用 jsonp

前端更优雅的使用 jsonp 背景&#xff1a;最近项目中又使用到了 jsonp 这一项跨域的技术&#xff0c;&#xff08;主要还是受同源策略影响&#xff09;&#xff0c;下面有为大家提供封装好的函数及对应使用示例&#xff0c;欢迎大家阅读理解 文章目录 前端更优雅的使用 jsonp同…

react useEffect中removeEventListener没生效问题解决

在useEffect中写入window.removeEventListener没有生效&#xff0c;代码如下 useEffect(() > {const handleResize () > {console.log(window.innerWidth, window.innerHeight);};window.addEventListener(resize, handleResize);return () > {window.removeEventLi…

HarmonyOS编程实践系列:第一节 - 创建健康App欢迎页

系列文章目录 &#xff08;零&#xff09;鸿蒙HarmonyOS入门&#xff1a;如何配置环境&#xff0c;输出“Hello World“ &#xff08;一&#xff09;鸿蒙HarmonyOS开发基础 &#xff08;二&#xff09;鸿蒙HarmonyOS主力开发语言ArkTS-基本语法 &#xff08;三&#xff09;鸿蒙…

高级数据结构与算法期中测试题

一、判断题 1、In dynamic programming algorithms, some results of subproblems have to be stored even they do not compose the optimal solution of a larger problem. T F 解析:T。在动态规划算法中,必须存储子问题的某些结果,因为他们可能需要用来…

HTML学习笔记(二)

1.HTML图像 图像标签&#xff08;<img>)和源属性&#xff08;src&#xff09; HTML中&#xff0c;图像由<img>标签来定义&#xff0c;<img>是空标签&#xff0c;只包含属性&#xff0c;没有闭合标签。在页面上显示图像需要使用源属性&#xff08;src),src是指…

LeetCode_(兜兜转转还是你)浪漫的环形链表问题

✨✨所属专栏&#xff1a;LeetCode刷题专栏✨✨ ✨✨作者主页&#xff1a;嶔某✨✨ 第一题&#xff1a; 这道题的代码很简单&#xff0c;但是后续的一些问题在思考的过程是很复杂的。下面我们就一起来分析一下吧&#xff01; 链表带环的意思就是说链表的某个节点的next指针指向…

SparkSQL---简介及RDD V.S DataFrame V.S Dataset编程模型详解

一、SparkSQL简介 SparkSQL&#xff0c;就是Spark生态体系中的构建在SparkCore基础之上的一个基于SQL的计算模块。SparkSQL的前身不叫SparkSQL&#xff0c;而叫Shark&#xff0c;最开始的时候底层代码优化&#xff0c;sql的解析、执行引擎等等完全基于Hive&#xff0c;总之Sha…

7-云原生监控体系-PromQL-函数功能和示例

Prometheus支持几个函数来操作数据。 文章目录 1. 函数语法解释2. count(v instant-vector)3. topk(n, v instant-vector)4. bottomk(n, v instant-vector)5. increase(v range-vector)6. rate(v range-vector)7. rate 和 increase8. irate(v range-vector)9. predict_linear(…

Qt开发 , new一个QDialog窗口,点击关闭按钮,内部定义QTimer指针未释放 同时 析构函数也未调用问题

在Qt中&#xff0c;当创建一个QDialog的实例并显示它时&#xff0c;按下关闭按钮&#xff08;或点击窗口右上角的“X”按钮&#xff09;会触发窗口的关闭事件&#xff0c;但并不会立即调用其析构函数。这是因为Qt的窗口部件管理内存的方式是基于引用计数的&#xff0c;并且QDia…