Leetcode刷题日记(十二)
又是老台词:欢迎大家来到一晚一度的leetcode刷题日记时间。今天我们来讲讲队列的问题,队列这方面的基础知识需要的同学到博主前面的文章找吧。队列这方面的问题平时博主也是接触得比较少的。下面是一道利用队列解决问题的简单经典题目。
下面直接上题目:
解决思路:
对字符串进行两次遍历。
在第一次遍历时,我们使用哈希映射(从未听过的东西)统计出字符串中每个字符出现的次数。在第二次遍历时,我们只要遍历到了一个只出现一次的字符,那么就返回它的索引,否则在遍历结束后返回 --1。
解题代码(C语言版,用c++解决用到几种容器也可以):
struct hashTable {
int key;
int val;
UT_hash_handle hh;
};
int firstUniqChar(char* s) {
struct hashTable* frequency = NULL;
int n = strlen(s);、//求长度
for (int i = 0; i < n; i++) {
int ikey = s[i];
struct hashTable* tmp;
HASH_FIND_INT(frequency, &ikey, tmp);
if (tmp == NULL) {
tmp = malloc(sizeof(struct hashTable));//创建结点
tmp->key = ikey;
tmp->val = 1;
HASH_ADD_INT(frequency, key, tmp);
}
else {
tmp->val++;
}
}
for (int i = 0; i < n; i++) {
int ikey = s[i];
struct hashTable* tmp;
HASH_FIND_INT(frequency, &ikey, tmp);
if (tmp != NULL && tmp->val == 1) {
return i;
}
}
return -1;
}
好啦,今天的分享就到这啦,大家早点睡哦,不要熬夜哦。
本贴为博主亲手整理。如有错误,请评论区指出,一起进步。谢谢大家的浏览.
Leetcode刷题日记(十二)相关推荐
- 一个算法笨蛋的12月leetCode刷题日记
类似文章 一个算法笨蛋的2021年11月leetCode刷题日记 一个算法笨蛋的2021年12月leetCode刷题日记 一个算法笨蛋的2022年1月leetCode刷题日记 一个算法笨蛋的2022年 ...
- LeetCode刷题(十)----数组-----medium部分(Java、C++)
LeetCode刷题(十)-----数组-------medium部分(Java.C++) 238. 除自身以外数组的乘积 给定长度为n的整数数组nums,其中n>1,返回输出数组output, ...
- Leetcode刷题日记:21-25题篇
Leetcode刷题日记:21-25题篇 简介 题目: 21. 合并两个有序链表 22. 括号生成 23. 合并K个升序链表 24. 两两交换链表中的节点 25. K 个一组翻转链表 注 简介 这个系 ...
- 【LeetCode刷题日记】常用算法基础和理解及运用
在我们LeetCode刷题过程中,如果我们只是了解数据结构(数组,链表,数)的使用方法,那我们在面对复杂的题目时,是很难很好的解决问题的,因此我们要了解一些常用算法来帮助我们更好的解题. 递归和迭代 ...
- SQL leetcode 刷题答案(二)
承接上篇 SQL leetcode 刷题答案https://blog.csdn.net/hahaha66888/article/details/89925981 5.Big Countries sel ...
- LeetCode刷题笔记 二叉树 二叉搜索树的操作
669 修剪二叉搜索树 给定一个二叉查找树和两个整数 L 和 R,且 L < R,试修剪此二叉查找树,使得修剪后所有节点的值都在 [L, R] 的范围内. 输入是一个二叉查找树和两个整数 ...
- leetcode刷题日记(一)—— 数组
因为暑期实习找得很不顺利,感觉自身最大的问题体现在刷题量偏少,操作系统,数据库基础不好,所以现在决定写博客来记录整个过程,希望能找到大厂offer,如果不能找到的话也算是为秋招做准备. 剑指offer ...
- Nico的刷题日记(二)
35. 搜索插入位置 题目描述 给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引.如果目标值不存在于数组中,返回它将会被按顺序插入的位置. 请必须使用时间复杂度为 O(log n) 的算 ...
- leetcode刷题 74.搜索二维矩阵
题目分析 这是一道简单的查找二维矩阵的题目,所以解决这题有一个最简单的解法就是遍历二维数组即可:但是我们应该注意到题目中的每行整数从左到右是按升序排列的,第一个整数大于前一行的最后一个整数,介于此,我 ...
最新文章
- 『计算机视觉』经典RCNN_其一:从RCNN到Faster-RCNN
- XDP/eBPF — Overview
- 87-区间线段树(板子)--那个苑区的人最瘦
- idea设置中文界面_《英雄联盟手游》设置界面中文翻译图分享 外服汉化界面一览...
- 电脑home键在哪_电脑键盘各键的名称及使用方法
- JSONP 跨域共享信息
- 力展物流公司上云 低成本、实例资源使用效率提升
- 自然语言处理实践Task2
- java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this a
- java writebytes()_Java ObjectOutputStream writeBytes()方法与示例
- 函数式编程与命令式编程的学习难度比较
- 一文带你弄懂什么是索引二叉堆
- HDU - 6070 线段树 + 分数规划
- 14讲项目实战内页抽出切换效果的实现
- 概念区分:灰度发布、蓝绿发布、滚动发布
- 他是世界上最杰出程序员之一,1 个月写了个操作系统,退休后去做飞行员!...
- 人工智能研究中心快递柜——代码分析九
- 新南威尔士 计算机硕士,新南威尔士大学计算机硕士申请条件及案例
- Unity Apple登录接入
- Js实现Flash播放效果[带源码]
热门文章
- geojson转esriJson
- PowerBuilder与外界的交互方式
- 第十一课用计算机写作教案,五年级下册计算机PowerPoint教案5篇【11-15课】
- invader的java学习第二天基础篇
- windows 无法停止SQLserver 服务
- 千万级车联网 MQTT 消息平台架构设计
- netty系列之:netty中的frame解码器
- 用于门牌号码检测的深度学习
- dedecms内链 arc.archives.class.php,dedecms文章关键字(自动内链)php5.5以上版本urf-8失效的解决方法...
- java字母排序_【Java】实现按中文首字母排序 | 学步园