当前位置: 首页 > news >正文

【算法学习】哈希表篇:哈希表的使用场景和使用方法

算法学习:

https://blog.csdn.net/2301_80220607/category_12922080.html?spm=1001.2014.3001.5482

前言:

在之前学习数据结构时我们就学习了哈希表的使用方法,这里我们主要是针对哈希表的做题方法进行讲解,都是leetcode上的经典题,各位可以自己做一遍再来看一下,主要抽取了几个经典的题

目录

1. 哈希表的基础知识

1.1 哈希表是什么

1.2 哈希表的作用

1.3 什么时候用哈希表

1.4 哈希表的应用场景

2. 哈希表经典例题

2.1 两数之和

2.2 存在重复元素||

2.3 字母异位词分组

3. 总结


1. 哈希表的基础知识

1.1 哈希表是什么

简单点来说哈希表就是一个存储数据的容器,但是能够对出现的数据进行标记

1.2 哈希表的作用

能够实现快速查找指定的数据,时间复杂度往往为O(1)

1.3 什么时候用哈希表

频繁的查找数据时

1.4 哈希表的应用场景

1. 直接使用哈希表这个数据类型

2. 在合适的场景使用数组来模拟哈希表

解释:

2、3:当我们需要频繁查找数据的时候我们就可以想到要用哈希表,哈希表的时间复杂度为o(1),空间复杂度为o(n)同时也要考虑是否可以用二分,二分时间复杂度为o(logn),也非常快,而且二分没有时间开销
4:除了之间使用函数提供给我们的哈希表外,我们也可以用数组模拟创建一个简易的哈希表,但这种只适用于元素少的情况,比如让我们统计字符串中各字符出现次数,我们就可以用数组 int hash[26]模拟一下

2. 哈希表经典例题

2.1 两数之和

1. 两数之和

给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target  的那 两个 整数,并返回它们的数组下标。

你可以假设每种输入只会对应一个答案,并且你不能使用两次相同的元素。

你可以按任意顺序返回答案。

示例 1:

输入:nums = [2,7,11,15], target = 9
输出:[0,1]
解释:因为 nums[0] + nums[1] == 9 ,返回 [0, 1] 。

示例 2:

输入:nums = [3,2,4], target = 6
输出:[1,2]

示例 3:

输入:nums = [3,3], target = 6
输出:[0,1]

提示:

  • 2 <= nums.length <= 104
  • -109 <= nums[i] <= 109
  • -109 <= target <= 109
  • 只会存在一个有效答案

算法原理:

解法一:暴力枚举

在这个暴力枚举中我们来考虑一种新的枚举思路

比如本题,按照之前的枚举策略,我们是要让当前位置(cur)与后面位置的数字依次相加,然后看是否有满足条件的数字

现在我们来看一种新的枚举思路,就是让所有位置的数字,与它前面位置的数字相加,然后判断是否有满足条件的两个数字这样的思路也能保证让所有的数两两相加,而且在处理一些细节上更有优势,尤其是本题,下面我们结合本题来感受一下

比如上面我们提到的这个队列,按照原来的思路,我们先来找一下2后面是否有合适的数字,使得2与其相加等于target,为了减小时间复杂度我们这里要用哈希表的方法,哈希表中存的值是数组中元素和对应的下标<nums[i,i>,但是如果我们是找当前元素后面的值时,我们就需要先提前将数组中所有数字及它们对应的下标先放入哈希表中,但这就会导致一些问题

比如这样一个数组和target值,如果我们按照原策略先将所有数字和对应下标放入哈希表中的话因为有两个3,在第一个3及它对应的下标放入哈希表中后,当放第二个3及它对应的下标时,就会把前一个存的3的下标给覆盖掉,所以我们还需要额外的操作对重复的数字的多个下标进行保存

但是如果我们采取的策略二,我们创建哈希表的时机就会发生一些变化,比如我们现在位置在2,我们是要从前面的位置找合适的数,前面没有数,所以哈希表中自然也没有,然后我们可以将2的值及它的下标放入哈希表中,同时让cur++,这样做的优化点是什么呢?

此时假如我们再遇到上面的情况(两个3),我们在第一个3时査找它前面是否有合适的数(前面的数己经放入哈希表了)时,会发现没有,然后我们把它放入哈希表中,然后到第二个3,我们发现哈希表中hash[target-3]存有一个下标,我们就找到满足条件的下标了

假如我们现在的target不是6,而是14,那我们在经过第二个3后,虽然会把哈希表中3对应的下标替换掉,但是仍不影响最终结果

思考一下:其实第二种策略比第一种策略的优化之处就是,策略二在替换一个数的坐标之前,是事先知道这个数字两两相加不满足条件的,所以保留一个与其它数字相加即可,而第一个数字则是在没考虑这种情况之前就只把重复数字只留下一个

代码实现:

class Solution {
public:vector<int> twoSum(vector<int>& nums, int target) {unordered_map<int,int> hash;for(int i=0;i<nums.size();i++){if(hash.count(target-nums[i])) return {hash[target-nums[i]],i};hash[nums[i]]=i;}return {-1,-1};}
};

2.2 存在重复元素||

219. 存在重复元素 II

给你一个整数数组 nums 和一个整数 k ,判断数组中是否存在两个 不同的索引 i 和 j ,满足 nums[i] == nums[j] 且 abs(i - j) <= k 。如果存在,返回 true ;否则,返回 false 。

示例 1:

输入:nums = [1,2,3,1], k = 3
输出:true

示例 2:

输入:nums = [1,0,1,1], k = 1
输出:true

示例 3:

输入:nums = [1,2,3,1,2,3], k = 2
输出:false

提示:

  • 1 <= nums.length <= 105
  • -109 <= nums[i] <= 109
  • 0 <= k <= 105

这道题就可以用上面的思路来解,挺简单的,可以练练手

代码实现:

class Solution {
public:bool containsNearbyDuplicate(vector<int>& nums, int k) {unordered_map<int,int> hash;for(int i=0;i<nums.size();i++){if(hash.count(nums[i])&&i-hash[nums[i]]<=k) return true;hash[nums[i]]=i;}return false;}
};

2.3 字母异位词分组

49. 字母异位词分组

给你一个字符串数组,请你将 字母异位词 组合在一起。可以按任意顺序返回结果列表。

字母异位词 是由重新排列源单词的所有字母得到的一个新单词。

示例 1:

输入: strs = ["eat", "tea", "tan", "ate", "nat", "bat"]
输出: [["bat"],["nat","tan"],["ate","eat","tea"]]

示例 2:

输入: strs = [""]输出: [[""]]

示例 3:

输入: strs = ["a"]输出: [["a"]]

提示:

  • 1 <= strs.length <= 104
  • 0 <= strs[i].length <= 100
  • strs[i] 仅包含小写字母

算法原理:

解释:

这道题就很考验我们对哈希表的使用,我们在这里创建的哈希表类型是一个<string,vector<string>>类型的哈希表,我们要做的是把所有的字母异位词放在一起,那么我们首先就需要判断哪些词是字母异位词,在这里我们有一个很巧的方法去判断,我们可以把这些字符串排序,字母异位词排序后是相等的,就如左边那样(“eat",“tea“排序后都是“aet"),然后让排序后的字符串作为key值,字母异位词放在同一个key值后,最后再从哈希表中把这些字符串数组提取出来即可

代码实现:

class Solution {
public:vector<vector<string>> groupAnagrams(vector<string>& strs) {unordered_map<string,vector<string>> hash;for(int i=0;i<strs.size();i++){string tmp=strs[i];sort(strs[i].begin(),strs[i].end());hash[strs[i]].push_back(tmp);}vector<vector<string>> ret;for(auto& [x,y]:hash)ret.push_back(y);return ret;}
};

3. 总结

以上就是几个关于哈希表的经典例题,都不算难,哈希表在算法题里出现的比例还是非常高的,一般都是作为一种数据类型存在的,掌握还是很有必要的

本篇笔记:

感谢各位大佬观看,创作不易,还望各位大佬点赞支持!!

相关文章:

【算法学习】哈希表篇:哈希表的使用场景和使用方法

算法学习&#xff1a; https://blog.csdn.net/2301_80220607/category_12922080.html?spm1001.2014.3001.5482 前言&#xff1a; 在之前学习数据结构时我们就学习了哈希表的使用方法&#xff0c;这里我们主要是针对哈希表的做题方法进行讲解&#xff0c;都是leetcode上的经典…...

(51单片机)LCD显示红外遥控相关数据(Delay延时函数)(LCD1602教程)(Int0和Timer0外部中断教程)(IR红外遥控模块教程)

前言&#xff1a; 本次Timer0模块改装了一下&#xff0c;注意&#xff01;&#xff01;&#xff01; 演示视频&#xff1a; 红外遥控 源代码&#xff1a; 如上图将9个文放在Keli5 中即可&#xff0c;然后烧录在单片机中就行了 烧录软件用的是STC-ISP&#xff0c;不知道怎么安…...

农产品园区展示系统——仙盟创梦IDE开发

<!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>农业大数据平台</title><style>* {margi…...

Copilot:您的AI伴侣-微软50周年系列更新

回顾微软五十年来持续创新带来的深远影响&#xff0c;比尔盖茨当年"让每张办公桌、每个家庭都拥有电脑"的宏伟愿景至今仍激励着我们。微软AI团队正秉承同样的精神&#xff0c;打造属于每个人的AI伙伴——Copilot。 这意味着什么&#xff1f;它是什么模样&#xff1f…...

【人工智能】深入探索Python中的自然语言理解:实现实体识别系统

《Python OpenCV从菜鸟到高手》带你进入图像处理与计算机视觉的大门! 解锁Python编程的无限可能:《奇妙的Python》带你漫游代码世界 自然语言理解(NLU)是人工智能(AI)领域中的重要研究方向之一,其目标是让计算机理解和处理人类语言。在NLU的众多应用中,实体识别(Nam…...

​​Steam安装下载及新手注册

&#x1f4e2;博客主页&#xff1a;肩匣与橘 &#x1f4e2;欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1f4dd; 如有错误敬请指正&#xff01; &#x1f4e2;本文由肩匣与橘编写&#xff0c;首发于CSDN&#x1f649; &#x1f4e2;生活依旧是美好而又温柔的&#xff0c;你也…...

Gradio全解20——Streaming:流式传输的多媒体应用(1)——流式传输音频:魔力8号球

Gradio全解20——Streaming&#xff1a;Streaming&#xff1a;流式传输的多媒体应用&#xff08;1&#xff09;——流式传输音频&#xff1a;魔力8号球 前言本篇摘要20. Streaming&#xff1a;流式传输的多媒体应用20.1 流式传输音频&#xff1a;魔力8号球20.1.1 工作原理20.1.…...

Netflix系统架构解析

Netflix系统架构解析 Netflix架构旨在高效可靠地同时为数百万用户提供内容。以下是其特性和组件的详细分析。 是否曾好奇Netflix如何让您目不转睛地享受无中断的流畅播放体验&#xff1f;幕后功臣正是Netflix架构&#xff0c;它负责提供吸引全球观众的无缝流媒体体验。Netflix的…...

宝塔面板运行docker的jenkins

1.在宝塔面板装docker&#xff0c;以及jenkins 2.ip:端口访问jenkins 3.获取密钥&#xff08;点击日志&#xff09; 4.配置容器内的jdk和maven环境&#xff08;直接把jdk和maven文件夹放到jenkins容器映射的data文件下&#xff09; 点击容器-->管理-->数据存储卷--.把相…...

【计算机视觉】目标检测:深度解析Detectron2:Meta开源目标检测与图像分割框架实战指南

深度解析Detectron2&#xff1a;Meta开源目标检测与图像分割框架实战指南 技术架构与设计哲学核心设计理念关键技术组件 环境配置与安装硬件建议配置详细安装步骤 实战流程详解1. 自定义数据集准备2. 模型配置与训练3. 模型评估与推理 核心功能扩展1. 自定义模型架构2. 混合精度…...

Notepad编辑器实现换行符替换

在不同的Note编辑器中&#xff0c;批量把换行替换为空的方法有所不同&#xff0c;以下是常见编辑器的操作方法&#xff1a; Notepad 打开文件后&#xff0c;按CtrlH打开“查找和替换”对话框&#xff0c;在“查找”字段中输入\r\n&#xff0c;在“替换为”字段中输入一个空格…...

【数据通信完全指南】从物理层到协议栈的深度解析

目录 1. 通信技术演进与核心挑战1.1 从电报到5G的技术变迁1.2 现代通信系统的三大瓶颈 2. 通信系统架构深度解构2.1 OSI七层模型运作原理2.2 TCP/IP协议栈实战解析 3. 物理层关键技术实现3.1 信号调制技术演进路线3.2 信道复用方案对比 4. 数据传输可靠性保障4.1 CRC校验算法数…...

SpringBoot多工程项目微服务install时如何不安装到本地仓库

在 Spring Boot 微服务项目中&#xff0c;比如各业务微服务模块由于不存在相互依赖度的问题&#xff0c;因此执行maven install时无需安装到本地仓库&#xff0c;但仍然需要参与构建&#xff08;如 mvn compile 或 mvn package&#xff09;。公共模块&#xff08;如​​辅助工具…...

强化学习_Paper_2017_Curiosity-driven Exploration by Self-supervised Prediction

paper Link: ICM: Curiosity-driven Exploration by Self-supervised Prediction GITHUB Link: 官方: noreward-rl 1- 主要贡献 对好奇心进行定义与建模 好奇心定义&#xff1a;next state的prediction error作为该state novelty 如果智能体真的“懂”一个state&#xff0c;那…...

iview内存泄漏

iview在升级到view-design之前&#xff0c;是存在严重的内存泄漏问题的&#xff0c;而如果你在项目中大量使用了iview组件&#xff0c;就可能面临大量的升级工作要做&#xff0c;因为样式很多是不兼容的。 我们今天就看一下iview的源码&#xff0c;看看到底问题在哪里&#xff…...

【Hive入门】Hive高级特性:事务表与ACID特性详解

目录 1 Hive事务概述 2 ACID特性详解 3 Hive事务表的配置与启用 3.1 启用Hive事务支持 3.2 创建事务表 4 Hive事务操作流程 5 并发控制与隔离级别 5.1 Hive的锁机制 5.2 隔离级别 6 Hive事务的限制与优化 6.1 主要限制 6.2 性能优化建议 7 事务表操作示例 7.1 基本…...

Modbus转PROFIBUS网关:电动机保护新突破!

Modbus转PROFIBUS网关&#xff1a;电动机保护新突破&#xff01; 在现代工业自动化领域&#xff0c;Modbus RTU和PROFIBUS DP是两种常见且重要的通讯协议。它们各自具有独特的优势和应用场景&#xff0c;但在实际工程中&#xff0c;我们常常需要将这两种不同协议的设备进行互联…...

大数据应用开发和项目实战-Seaborn

设计目标 seaborn 建立在 matplotlib 之上&#xff0c;专注于统计数据可视化&#xff0c;简化绘图过程&#xff0c;提供高级接口和美观的默认主题 Seaborn的安装&#xff1a; 1.pip install seaborn -i 2.conda install seaborn &#xff08;清华源&#xff1a;https://pypi.t…...

弹窗探索鸿蒙之旅:揭秘弹窗的本质与奥秘

嘿&#xff0c;小伙伴们&#xff01;&#x1f44b; 今天我们要一起探索那些在日常应用中无处不在的小精灵——弹窗&#xff01;&#x1f4ac; &#x1f914; ‌弹窗到底是什么&#xff1f;‌ 简单来说&#xff0c;弹窗就是应用程序中突然冒出来的交互元素&#xff0c;它们像…...

“技术创新+全球视野”良性驱动,首航新能的2025新征程正式起航

撰稿 | 行星 来源 | 贝多财经 近日&#xff0c;备受瞩目的“2025年光伏第一股”深圳市首航新能源股份有限公司&#xff08;301658.SZ&#xff0c;下称“首航新能”&#xff09;对外发布了上市后的首份年报&#xff0c;交出了一份量质齐升的业绩答卷&#xff0c;构筑更加强大的…...

黑群晖Moments视频无缩略图,安装第三方ffmpeg解决

黑群晖Moments视频无缩略图&#xff0c;安装第三方ffmpeg解决 1. 设置套件来源 黑群晖Moments视频无缩略图&#xff0c;安装第三方ffmpeg解决 基于这个文章&#xff0c;补充一下&#xff1a; 1. 设置套件来源 设置套件来源时(http://packages.synocommunity.com)&#xff0c…...

工业控制「混合架构」PK大战 —— 神经网络 + MPC vs 模糊 PID+MPC 的场景选型与实战指南

1. 引言 在工业控制领域&#xff0c;传统的 PID 控制器因其结构简单、稳定性好而被广泛应用&#xff0c;但面对复杂非线性系统时往往力不从心。模型预测控制&#xff08;MPC&#xff09;作为一种基于模型的先进控制策略&#xff0c;能够有效处理多变量、多约束问题&#xff0c…...

树莓派智能摄像头实战指南:基于TensorFlow Lite的端到端AI部署

引言&#xff1a;嵌入式AI的革新力量 在物联网与人工智能深度融合的今天&#xff0c;树莓派这一信用卡大小的计算机正在成为边缘计算的核心载体。本文将手把手教你打造一款基于TensorFlow Lite的低功耗智能监控设备&#xff0c;通过MobileNetV2模型实现实时物体检测&#xff0…...

OpenCV 图形API(73)图像与通道拼接函数-----执行 查找表操作图像处理函数LUT()

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 对矩阵执行查找表变换。 函数 LUT 使用来自查找表中的值填充输出矩阵。输入矩阵中的值作为查找表的索引。也就是说&#xff0c;函数对 src 中的…...

【MySQL】增删改查(CRUD)

目录 一. CRUD是什么 二. Create&#xff08;新增数据&#xff09; 2.1 单行数据全列插入 2.2 单行数据指定列插入 2.3 多行数据指定列插入 三. Retrieve &#xff08;检索/查询&#xff09; 3.1 全列查询 3.2 指定列查询 3.3 查询字段为表达式 3.4 为查询结果指定别名 3…...

iview 如何设置sider宽度

iview layout组件中&#xff0c;sider设置了默认宽度和最大宽度&#xff0c;在css样式文件中修改无效&#xff0c;原因是iview默认样式设置在了element.style中&#xff0c;只能通过行内样式修改 样式如下&#xff1a; image.png image.png 修改方式&#xff1a; 1.官方文档中写…...

Unity URP RenderTexture优化(二):深度图优化

目录 前言&#xff1a; 一、定位深度信息 1.1&#xff1a;k_DepthStencilFormat 1.2&#xff1a;k_DepthBufferBits 1.3&#xff1a;_CameraDepthTexture精度与大小 1.4&#xff1a;_CameraDepthAttachment数量 二、全代码 前言&#xff1a; 在上一篇文章&#xff1a;Un…...

iview表单提交验证时,出现空值参数被过滤掉不提交的问题解决

如图所示 有时候在表单提交的时候 个别参数是空值&#xff0c;但是看提交接口的反馈 发现空值的参数根本没传 这是因为表单验证给过滤掉了空值&#xff0c;有时候如果空值传不传都不无所谓&#xff0c;那可以不用管&#xff0c;但如果就算是空值也得传的吗&#xff0c;那就需要…...

GEO vs SEO:从搜索引擎到生成引擎的优化新思路

随着人工智能技术的快速发展&#xff0c;生成引擎优化&#xff08;GEO&#xff09;作为一种新兴的优化策略&#xff0c;逐渐成为企业和内容创作者关注的焦点。与传统的搜索引擎优化&#xff08;SEO&#xff09;相比&#xff0c;GEO不仅关注如何提升内容在搜索结果中的排名&…...

Python-pandas-操作csv文件(读取数据/写入数据)及csv语法详细分享

Python-pandas-操作csv文件(读取数据/写入数据) 提示&#xff1a;帮帮志会陆续更新非常多的IT技术知识&#xff0c;希望分享的内容对您有用。本章分享的是pandas的使用语法。前后每一小节的内容是存在的有&#xff1a;学习and理解的关联性。【帮帮志系列文章】&#xff1a;每个…...

如何在Windows上实现MacOS中的open命令

在MacOS的终端中&#xff0c;想要快速便捷的在Finder中打开当前目录&#xff0c;直接使用oepn即可。 open . 但是Windows中没有直接提供类似open这样的命令&#xff0c;既然没有直接提供&#xff0c;我们就间接手搓一个实现它。 步骤1&#xff1a;创建open.bat echo OFF expl…...

读论文笔记-LLaVA:Visual Instruction Tuning

读论文笔记-LLaVA&#xff1a;Visual Instruction Tuning 《Visual Instruction Tuning》 研究机构&#xff1a;Microsoft Research 发表于2023的NeurIPS Problems 填补指令微调方法&#xff08;包括数据、模型、基准等&#xff09;在多模态领域的空白。 Motivations 人工…...

Vue3源码学习3-结合vitetest来实现mini-vue

文章目录 前言✅ 当前已实现模块汇总&#xff08;mini-vue&#xff09;✅ 每个模块简要源码摘要1. reactive.ts2. effect.ts3. computed.ts4. ref.ts5. toRef.ts6. toRefs.ts ✅ 下一阶段推荐目标所有核心模块对应的 __tests__ 测试文件&#xff0c;**带完整注释**✅ reactive.…...

K8S - 从零构建 Docker 镜像与容器

一、基础概念 1.1 镜像&#xff08;Image&#xff09; “软件的标准化安装包” &#xff0c;包含代码、环境和配置的只读模板。 技术解析 镜像由多个层组成&#xff0c;每层对应一个Dockerfile指令&#xff1a; 应用代码 → 运行时环境 → 系统工具链 → 启动配置核心特性…...

贪心算法求解边界最大数

贪心算法求解边界最大数&#xff08;拼多多2504、排列问题&#xff09; 多多有两个仅由正整数构成的数列 s1 和 s2&#xff0c;多多可以对 s1 进行任意次操作&#xff0c;每次操作可以置换 s1 中任意两个数字的位置。多多想让数列 s1 构成的数字尽可能大&#xff0c;但是不能比…...

C++类和对象(中)

类的默认成员函数 默认成员函数就是用户没有显式实现&#xff0c;编译器会自动生成的成员函数。一个类&#xff0c;我们不写的情况下编译器会默认生成6个默认成员函数&#xff0c;C11以后还会增加两个默认成员函数&#xff0c;移动构造和移动赋值。默认成员函数 很重要&#x…...

(Go Gin)Gin学习笔记(五)会话控制与参数验证:Cookie使用、Sessions使用、结构体验证参数、自定义验证参数

1. Cookie介绍 HTTP是无状态协议&#xff0c;服务器不能记录浏览器的访问状态&#xff0c;也就是说服务器不能区分两次请求是否由同一个客户端发出Cookie就是解决HTTP协议无状态的方案之一&#xff0c;中文是小甜饼的意思Cookie实际上就是服务器保存在浏览器上的一段信息。浏览…...

Windows 10 环境二进制方式安装 MySQL 8.0.41

文章目录 初始化数据库配置文件注册成服务启停服务链接服务器登录之后重置密码卸载 初始化数据库 D:\MySQL\MySQL8.0.41\mysql-8.0.41-winx64\mysql-8.0.41-winx64\bin\mysqld -I --console --basedirD:\MySQL\MySQL8.0.41\mysql-8.0.41-winx64\mysql-8.0.41-winx64 --datadi…...

Day.js一个2k轻量级的时间日期处理库

dayjs介绍 dayjs是一个极简快速2kB的JavaScript库&#xff0c;可以为浏览器处理解析、验证、操作和显示日期和时间&#xff0c;它的设计目标是提供一个简单、快速且功能强大的日期处理工具&#xff0c;同时保持极小的体积&#xff08;仅 2KB 左右&#xff09;。 Day.js 的 API…...

SQL实战:05之间隔连续数问题求解

概述 最近刷题时遇到一些比较有意思的题目&#xff0c;之前多次遇到一些求解连续数的问题&#xff0c;这次遇到了他们的变种&#xff0c;连续数可以间隔指定的数也视为是一个完整的“连续”。针对连续数的这类问题我们之前讲的可以利用等差数列的思想来解决&#xff0c;然而现…...

Windows下Dify安装及使用

Dify安装及使用 Dify 是开源的 LLM 应用开发平台。提供从 Agent 构建到 AI workflow 编排、RAG 检索、模型管理等能力&#xff0c;轻松构建和运营生成式 AI 原生应用。比 LangChain 更易用。 前置条件 windows下安装了docker环境-Windows11安装Docker-CSDN博客 下载 Git下载…...

回归分析丨基于R语言复杂数据回归与混合效应模型【多水平/分层/嵌套】技术与代码

回归分析是科学研究特别是生态学领域科学研究和数据分析十分重要的统计工具&#xff0c;可以回答众多科学问题&#xff0c;如环境因素对物种、种群、群落及生态系统或气候变化的影响&#xff1b;物种属性和系统发育对物种分布&#xff08;多度&#xff09;的影响等。纵观涉及数…...

EasyRTC嵌入式音视频实时通话SDK技术,打造低延迟、高安全的远程技术支持

一、背景 在当今数字化时代&#xff0c;远程技术支持已成为解决各类技术问题的关键手段。随着企业业务的拓展和技术的日益复杂&#xff0c;快速、高效地解决远程设备与系统的技术难题变得至关重要。EasyRTC作为一款高性能的实时通信解决方案&#xff0c;为远程技术支持提供了创…...

webrtc ICE 打洞总结

要搞清webrtc ICE连接是否能成功 &#xff0c; 主要是搞懂NAT NAT 类型 简单来说 一 是本地的ip和端口 决定外部的 ip和端口(和目的Ip和端口无关) &#xff0c; &#xff08;这种情况又分为 &#xff0c; 无限制&#xff0c;仅限制 ip &#xff0c; 限制ip和port , 也就是…...

AI开发者的Docker实践:汉化(中文),更换镜像源,Dockerfile,部署Python项目

AI开发者的Docker实践&#xff1a;汉化&#xff08;中文&#xff09;&#xff0c;更换镜像源&#xff0c;Dockerfile&#xff0c;部署Python项目 Dcoker官网1、核心概念镜像 (Image)容器 (Container)仓库 (Repository)DockerfileDocker Compose 2、Docker 的核心组件Docker 引擎…...

4.30阅读

一. 原文阅读 Passage 7&#xff08;推荐阅读时间&#xff1a;6 - 7分钟&#xff09; In department stores and closets all over the world, they are waiting. Their outward appearance seems rather appealing because they come in a variety of styles, textures, and …...

区块链:跨链协的技术突破与产业重构

引言&#xff1a;区块链的“孤岛困境”与跨链的使命 区块链技术自诞生以来&#xff0c;凭借去中心化、透明性和安全性重塑了金融、供应链、身份认证等领域。然而&#xff0c;不同区块链平台间的​​互操作性缺失​​&#xff0c;如同“数据与价值的孤岛”&#xff0c;严重限制…...

Github 热点项目 Qwen3 通义千问全面发布 新一代智能语言模型系统

阿里云Qwen3模型真是黑科技&#xff01;两大模式超贴心——深度思考能解高数题&#xff0c;快速应答秒回日常梗。支持百种语言互译&#xff0c;跨国客服用它沟通零障碍&#xff01;打工人福音是内置API工具&#xff0c;查天气做报表张口就来。字&#xff09; 1Qwen3 今日星标 …...

有状态服务与无状态服务:差异、特点及应用场景全解

有状态服务和无状态服务是在分布式系统和网络编程中常提到的概念&#xff0c;下面为你详细介绍&#xff1a; 一、无状态服务 无状态服务指的是该服务的单次请求处理不依赖之前的请求信息&#xff0c;每个请求都是独立的。服务端不会存储客户端的上下文信息&#xff0c;每次请…...

【网络入侵检测】基于源码分析Suricata的引擎日志配置解析

【作者主页】只道当时是寻常 【专栏介绍】Suricata入侵检测。专注网络、主机安全&#xff0c;欢迎关注与评论。 1. 概要 &#x1f44b; Suricata 的引擎日志记录系统主要记录该引擎在启动、运行以及关闭期间应用程序的相关信息&#xff0c;如错误信息和其他诊断信息&#xff0c…...