C语言 | Leetcode C语言题解之第219题存在重复元素II

ops/2024/10/21 3:28:50/

题目:

题解

struct HashEntry {int key;                  int val;UT_hash_handle hh;         
};void hashAddItem(struct HashEntry **obj, int key, int val) {struct HashEntry *pEntry;pEntry = malloc(sizeof(struct HashEntry));pEntry->key = key;pEntry->val = val;HASH_ADD_INT(*obj, key, pEntry);
} struct HashEntry *hashFindItem(const struct HashEntry **obj, int key)
{struct HashEntry *pEntry = NULL;HASH_FIND_INT(*obj, &key, pEntry);return pEntry;
}void hashEraseItem(struct HashEntry **obj, int key)
{   struct HashEntry *pEntry = NULL;HASH_FIND_INT(*obj, &key, pEntry);if (NULL != pEntry) {HASH_DEL(*obj, pEntry);free(pEntry);} 
}void hashFreeAll(struct HashEntry **obj)
{struct HashEntry *curr, *next;HASH_ITER(hh, *obj, curr, next){HASH_DEL(*obj,curr);  free(curr);      }
}bool containsNearbyDuplicate(int* nums, int numsSize, int k){struct HashEntry *cnt = NULL;for (int i = 0; i < numsSize; i++) {if (i > k) {hashEraseItem(&cnt, nums[i - k - 1]);}struct HashEntry * pEntry = hashFindItem(&cnt, nums[i]);if (NULL != pEntry) {return true;}hashAddItem(&cnt, nums[i], 1);}hashFreeAll(&cnt);return false;
}

http://www.ppmy.cn/ops/55843.html

相关文章

一文理解 Treelite,Treelite 为决策树集成模型的部署和推理提供了高效、灵活的解决方案

&#x1f349; CSDN 叶庭云&#xff1a;https://yetingyun.blog.csdn.net/ 一、什么是 Treelite&#xff1f; Treelite 是一个专门用于将决策树集成模型高效部署到生产环境中的机器学习模型编译器&#xff0c;特别适合处理大批量数据的推理任务&#xff0c;能够显著提升推理性能…

QT操作各类数据库用法详解

文章目录 创建内存SQLITE数据库QSqlTableModel操作数据库表连接国产数据库多线程数据处理不指定数据库名打开数据库QT对各种数据库的支持情况处理数据库表名QT连接各种数据库Qt提供了一个名为QtSQL模块的强大组件, 使得在Qt应用程序中连接和操作多种类型的数据库变得相对简单。…

AI大模型技术分析

一文读懂&#xff1a;AI大模型&#xff01; 引言 近年来&#xff0c;随着深度学习技术的迅猛发展&#xff0c;AI大模型已经成为人工智能领域的重要研究方向和热点话题。AI大模型&#xff0c;指的是拥有巨大参数规模和强大学习能力的神经网络模型&#xff0c;如BERT、GPT等&…

3. train_encoder_decoder.py

train_encoder_decoder.py #__future__ 模块提供了一种方式&#xff0c;允许开发者在当前版本的 Python 中使用即将在将来版本中成为标准的功能和语法特性。此处为了确保代码同时兼容Python 2和Python 3版本中的print函数 from __future__ import print_function # 导入标准库…

Java并发编程-AQS详解及案例实战(下篇)

文章目录 读写锁互斥:基于AQS的state二进制高低16位完成互斥判断`state`变量的位分配读写锁互斥判断代码实现总结释放写锁的源码剖析以及对AQS队列唤醒阻塞线程的过程释放写锁的源码AQS的`release`方法唤醒等待线程总结基于CAS实现多线程并发同时只有一个可以加读锁使用CAS实现…

elementui中@click短时间内多次触发,@click重复点击,做不允许重复点击处理

click快速点击&#xff0c;发生多次触发 2.代码示例&#xff1a; //html<el-button :loading"submitLoading" type"primary" click"submitForm">确 定</el-button>data() {return {submitLoading:false,}}//方法/** 提交按钮 */sub…

2^k进制数(对每部分代码详解)

2^k进制数 题目描述 设 r r r 是个 2 k 2^k 2k 进制数&#xff0c;并满足以下条件&#xff1a; r r r 至少是个 2 2 2 位的 2 k 2^k 2k 进制数。 作为 2 k 2^k 2k 进制数&#xff0c;除最后一位外&#xff0c; r r r 的每一位严格小于它右边相邻的那一位。 将 r r r …

PIL,OpenCV,Pytorch处理图像时的通道顺序(颜色,长宽深)

项目颜色通道顺序长宽通道顺序数据类型取值范围PILRGBHWCndarray0-255 (byte)OpenCVBGRHWCndarray0-255 (byte)PyTorchRGB/BGR (取决于如何读取)(N)CHWtensor0-1 (float, 标准化后); 0-255 (int, 未标准化) 注意以下几点&#xff1a; 颜色通道顺序&#xff1a;PIL默认使用RGB顺…