C语言 | Leetcode C语言题解之第220题存在重复元素III

题目:

题解:

struct HashTable {int key;int val;UT_hash_handle hh;
};int getID(int x, long long w) {return x < 0 ? (x + 1ll) / w - 1 : x / w;
}struct HashTable* query(struct HashTable* hashTable, int x) {struct HashTable* tmp;HASH_FIND_INT(hashTable, &x, tmp);return tmp;
}bool containsNearbyAlmostDuplicate(int* nums, int numsSize, int k, int t) {struct HashTable* hashTable = NULL;for (int i = 0; i < numsSize; i++) {long long x = nums[i];int id = getID(x, t + 1ll);struct HashTable* tmp;tmp = query(hashTable, id - 1);if (tmp != NULL && fabs(x - tmp->val) <= t) {return true;}tmp = query(hashTable, id + 1);if (tmp != NULL && fabs(x - tmp->val) <= t) {return true;}tmp = query(hashTable, id);if (tmp != NULL) {return true;} else {tmp = malloc(sizeof(struct HashTable));tmp->key = id;tmp->val = x;HASH_ADD_INT(hashTable, key, tmp);}if (i >= k) {tmp = query(hashTable, getID(nums[i - k], t + 1ll));HASH_DEL(hashTable, tmp);}}return false;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/867657.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

leetcode每日一题-3101 交替子数组计数

暴力遍历&#xff1a;看起来像是回溯,实际上就是递归 class Solution { private:long long _res 0; public:long long countAlternatingSubarrays(vector<int>& nums) {backtrack(nums, 0);return _res;}void backtrack(vector<int>& nums, long long st…

查询某个县区数据,没有的数据用0补充。

加油&#xff0c;新时代打工人&#xff01; 思路&#xff1a; 先查出有数据的县区&#xff0c;用县区编码判断&#xff0c;不存在县区里的数据。然后&#xff0c;用union all进行两个SQL拼接起来。 SELECTt.regionCode,t.regionName,t.testNum,t.sampleNum,t.squareNum,t.crop…

普中51单片机:数码管显示原理与实现详解(四)

文章目录 引言数码管的结构数码管的工作原理静态数码管电路图开发板IO连接图代码演示 动态数码管实现步骤数码管驱动方式电路图开发板IO连接图真值表代码演示1代码演示2代码演示3 引言 数码管&#xff08;Seven-Segment Display&#xff09;是一种常见的显示设备&#xff0c;广…

Java NIO:深入探索非阻塞I/O操作

Java NIO&#xff1a;深入探索非阻塞I/O操作 一、引言 随着网络应用的快速发展&#xff0c;对于高性能I/O操作的需求日益增加。传统的Java I/O模型基于流&#xff08;Stream&#xff09;进行数据传输&#xff0c;采用阻塞式&#xff08;Blocking&#xff09;方式&#xff0c;…

Visual studio 2023下使用 installer projects 打包C#程序并创建 CustomAction 类

Visual studio 2023下使用 installer projects 打包C#程序并创建 CustomAction 类 1 安装Visual studio 20203,并安装插件1.1 下载并安装 Visual Studio1.2 步骤二:安装 installer projects 扩展插件2 创建安装项目2.1 创建Windows安装项目2.2 新建应用程序安装文件夹2.3 添加…

sqlserver 当前时间

sqlserver 当前时间 在 SQL Server 中&#xff0c;获取当前时间有多种方法&#xff0c;以下是一些常用的方法&#xff1a; 使用 GETDATE() 函数&#xff1a; SELECT GETDATE() AS CurrentDateTime 如果你需要更精确的时间&#xff08;包括毫秒&#xff09;&#xff0c;可以使…

数据库SQL Server常用操作:增删改查

文章目录 SQL Server主要特点 常见数据库操作假设tmall_scapler_item_pk是一个主键约束临时表表的连接 SQL Server SQL Server 是由微软&#xff08;Microsoft&#xff09;公司开发的一个关系数据库管理系统&#xff08;RDBMS&#xff09;。它允许企业或组织存储、检索、修改和…

力扣刷题练习 七【34. 在排序数组中查找元素的第一个和最后一个位置】

前言 数组类型题目练习。 练习题 七【34. 在排序数组中查找元素的第一个和最后一个位置】 一、题目阅读 给你一个按照非递减顺序排列的整数数组 nums&#xff0c;和一个目标值 target。请你找出给定目标值在数组中的开始位置和结束位置。 如果数组中不存在目标值 target&…

A Threat Actors 出售 18 万名 Shopify 用户信息

BreachForums 论坛成员最近发布了涉及 Shopify 的重大数据泄露事件。 据报道&#xff0c;属于近 180,000 名用户的敏感数据遭到泄露。 Shopify Inc. 是一家总部位于安大略省渥太华的加拿大公司。 开发和营销同名电子商务平台、Shopify POS 销售点系统以及专用于企业的营销工…

SQL脚本初始化数据

创建或选择某个数据库&#xff0c;运行窗口输入&#xff1a;source,再拖入文件&#xff0c;回车即可&#xff1b; 虽然也可以使用图形化工具初始化数据&#xff0c;但是他会有内存限制&#xff0c;也就是较大的sql文件不可以初始化&#xff0c;而运行窗口没有sql文件大小限制&…

本周23个Github有趣项目llama-agents等

23个Github有趣的项目、工具和库 1、Positron 下一代数据科学 IDE。 您使用 VS Code 进行数据科学&#xff08;Python 或 R&#xff09;&#xff0c;但希望它包含专用控制台、变量窗格、数据浏览器和其他用于特定数据工作的功能。您使用 Jupyterlab 进行数据科学&#xff08;…

python读取csv出错怎么解决

Python用pandas的read_csv函数读取csv文件。 首先&#xff0c;导入pandas包后&#xff0c;直接用read_csv函数读取报错OSError&#xff0c;如下&#xff1a; 解决方案是加上参数&#xff1a;enginepython。 运行之后没有报错&#xff0c;正在我欣喜之余&#xff0c;输出一下d…

数据结构第04节:数组

线性数据结构 - 数组 线性数据结构中的数组是一种基础且广泛使用的数据存储方式&#xff0c;它存储一系列相同类型的元素&#xff0c;这些元素在内存中连续存放。数组可以是静态的或动态的。 静态数组&#xff08;Static Arrays&#xff09; 静态数组在声明时需要指定大小&a…

如何度量信息的大小

信息这个词让我们感到熟悉而又陌生。熟悉是因为我们所处在一个信息时代&#xff0c;与生活密切相关的就有大量的各种信息&#xff0c;比如书籍、手机、电脑等。而陌生是因为很难精确说明信息是什么并且如何量化信息&#xff0c;比如“地球是圆的”一句话包含了多少信息呢&#…

Java:多态

文章目录 一、概念二、使用前提三、实例四、优缺点4.1 优点4.2 缺点 五、动态绑定和静态绑定5.1 动态绑定5.2 静态绑定 一、概念 多态是指类的多种形态&#xff0c;同一个接口&#xff0c;使用不同的实例而执行不同操作。 二、使用前提 有继承/实现关系有父类引用指向子类对象…

centos7部署mysql8.0

1.安装MySQL的话会和MariaDB的文件冲突&#xff0c;所以需要先卸载掉MariaDB。查看是否安装mariadb rpm -qa | grep mariadb 2. 卸载mariadb rpm -e --nodeps 查看到的文件名 3.下载MySQL安装包 MySQL官网下载地址: MySQL :: Download MySQL Community Serverhttps://dev.mys…

19.JWT

1►JWT博客推荐 阮老师讲得很好了&#xff0c;网址如下&#xff1a; http://www.ruanyifeng.com/blog/2018/07/json_web_token-tutorial.html 2►ry是怎么践行JWT的呢&#xff1f; 问题一&#xff1a;不登录的时候有token吗&#xff1f; 答&#xff1a;没有&#xff0c;所…

[概念]探索AI与AIGC:从定义到应用场景

一、什么是人工智能&#xff08;AI&#xff09;&#xff1f; 人工智能&#xff08;Artificial Intelligence&#xff0c;AI&#xff09;正成为科技革命和产业变革的核心推动力。AI是研究、开发用于模拟、延伸和扩展人类智能的理论、方法、技术及应用系统的新兴技术科学&#xf…

Uniapp的简要开发流程指南

Uniapp开发指南 简介 Uniapp 是由DCloud推出的一款基于Vue.js的多端开发框架&#xff0c;支持编译到iOS、Android、H5、以及各大小程序平台&#xff08;如微信小程序、支付宝小程序、百度小程序等&#xff09;。它使开发者可以通过一次编码&#xff0c;实现跨平台的应用发布&…

blender 纹理绘制-贴花方式

贴画绘制-1分钟blender_哔哩哔哩_bilibili小鸡老师的【Blender风格化角色入门教程】偏重雕刻建模https://www.cctalk.com/m/group/90420100小鸡老师最新的【风格化角色全流程进阶教程】偏重绑定。早鸟价进行中&#xff01;欢迎试听https://www.cctalk.com/m/group/90698829, 视…