在算法练习当中,常常会遇到用 hashmap 来实现的思路,通过 key-value 方便快捷的查找,增加,删除特定数据。

在高级语言当中,c++或java都有一套 hashmap API可供使用,但是 C 语言却没有系统的

不过开源项目为我们提供了这套工具,利用这套工具,可以方便的将自定义数据结构 hash 话

官网文档:

uthashhttps://troydhanson.github.io/uthash/userguide.html#_a_hash_in_c

git 仓库

uthashhttps://github.com/troydhanson/uthash        同样包括文档,源码示例等,有兴趣可以细读

示例1:

217. 存在重复元素https://leetcode-cn.com/problems/contains-duplicate/这个就可以用来练手,查找一个数是否存在于hash map,没有就新增

struct num_map {int val;UT_hash_handle hh;
};bool containsDuplicate(int* nums, int numsSize){bool ret = false;struct num_map* occur = NULL;for(int i=0; i<numsSize; i++){struct num_map* tmp = NULL;HASH_FIND_INT(occur, &nums[i], tmp);if (tmp == NULL) {tmp = malloc(sizeof(struct num_map));tmp->val = nums[i];HASH_ADD_INT(occur, val, tmp);} else {ret = true;break;}}return ret;
}

示例2:

1207. 独一无二的出现次数

更多数据结构算法详解

C语言的hashmap相关推荐

  1. C语言仿HashMap完成记忆化搜索

    至于为何用C语言来开荒算法,我不知道我不知道!!!(无尽的后悔) 但是既然你从标题进来了,那就说明你也准备用C写记忆化搜索,那么我就以下面一题为例,讲解一下C实现记忆化搜索的办法. 这是LeetCod ...

  2. 2021-05-07:set,hashmap,collisions, map 242 1 15 18

    内容: 1. HashTable, Hash Function, Collisions 2.Map, Set 3.HashMap, HashSet, TreeMap, TreeSet 1. HashT ...

  3. 通俗易懂的Redis数据结构基础教程

    Redis有5个基本数据结构,string.list.hash.set和zset.它们是日常开发中使用频率非常高应用最为广泛的数据结构,把这5个数据结构都吃透了,你就掌握了Redis应用知识的一半了. ...

  4. 在列表前方插入一个数据_通俗易懂的Redis数据结构基础教程

    Redis有5个基本数据结构,string.list.hash.set和zset.它们是日常开发中使用频率非常高应用最为广泛的数据结构,把这5个数据结构都吃透了,你就掌握了Redis应用知识的一半了. ...

  5. java面试题:Redis常见面试题(实际面试有被问到)

    目录 1.Redis和Memcached相比,有哪些优势? 2.Redis为什么要把数据放到内存中? 3.Redis 为何这么快? 4.为何使用单线程? 5.缓存三大问题以及解决方案? 缓存穿透:查询 ...

  6. 推荐一款优秀的国内开源工具类库Hutool,让你的代码量减少90%

    文章目录 一.常用的工具类库有哪些?为啥我要推荐Hutool? 二.Hutool简介 三. Hutool如何改变我们的coding方式 四.包含组件 五.使用示例 六.Hutool结构概述 一.常用的 ...

  7. php判断区号,如何使用PHP或python将区号转换为状态?

    制表符分隔的副本/意面,用于将区号映射到州缩写 据我所知,它们是正确的,如果您看到任何错误的映射.遗漏或不正确的映射,请留下注释和/或修复它.在201 NJ 202 DC 203 CT 204 MB ...

  8. HashMap暴力枚举(洛谷P1765题题解,Java语言描述)

    前言 本题水题一个,但是这里会结合着提一些HashMap的内容~~但不是什么深度分析,没营养的... 题目要求 P1765题目链接 分析 这题懒得去排着弄,突然就觉得不如打个表,这样还是很简洁滴~~ ...

  9. C语言利用uthash.h实现hashmap

    下载uthash.h [官网下载]:官网下载 下载zip后,找到src目录,将其复制到C语言的头文件夹中. 如果使用的是vs: 1.随便打开一个c语言的文件,ctrl+鼠标正建打开头文件. 2. 打开 ...

最新文章

  1. different application signatures解决方法
  2. pickle模块介绍
  3. mysql 使用 utf8mb4 编码
  4. 牛客 - 牛牛的mex(主席树/思维)
  5. php主机安装v2,RackTables 安装教程Installation GuideV2
  6. skip与direct模式区别 ,他们与CBP的关系
  7. 如何用Pygame写游戏(二)
  8. 开启sqlplus中执行计划
  9. 电脑键盘关机是哪个键_电脑关机后键盘鼠标还亮着怎么关闭?华硕主板的解决方法...
  10. 二分法以及random函数使用
  11. 这次要说不明白 immutable 类,我就怎么地!
  12. read .off file in matlab
  13. php基础-基本语法
  14. CSDN博客代码片黑色背景及代码高亮设置
  15. 《数据结构》实验报告(一)顺序表基本操作
  16. 电机选型计算电机转动惯量、启动转矩和额定转速
  17. 利用NoteExpress统一Elsevier旗下期刊参考文献格式
  18. mysql 1048_MySQL Error 1048 奇遇记-阿里云开发者社区
  19. 百度(杭州)创新中心人工智能产业论坛落幕,看AI如何引发行业革命
  20. nofollow标签的写法与作用

热门文章

  1. html5 调起电话、短信、qq临时会话
  2. 一文讲清楚动物模型中的母体效应
  3. Linux创建用户、用户组并赋予权限
  4. 基于Java的爱奇艺播放平台的设计与实现
  5. HTML5 K线走势图代码
  6. 新能源共享充电桩管理运营平台
  7. kaggle入门赛TOP%7:泰坦尼克号(1.数据分析,特征处理)基于百度aistudio平台
  8. 数值分析中有效数字的定义理解及计算
  9. schedule 详解
  10. cal命令 – 显示日历