【哈希表与字符串的算法之路:思路与实现】—— LeetCode
文章目录
- 两数之和
- 面试题01.02.判定是否为字符重排
- 存在重复元素
- 存在重复元素||
- 字母异位词分组
- 最长公共前缀和
- 最长回文子串
- 二进制求和
- 字符串相乘
两数之和
这题的思路很简单,在读完题目之后,便可以想到暴力枚举,直接遍历整个数组两遍即可,但是时间复杂度高,下面是运行之后的结果
很简单快速的将这个题目写完了,但是有没有更高效,时间复杂度更低的方法呢?
当然!
思路:
- 利用哈希表进行优化已经知道了target,那么遍历让x = target-nums[i]如果x在哈希表中存在,那么就存在这组元素——即结果。
class Solution
{
public:vector<int> twoSum(vector<int>& nums, int target) {unordered_map<int, int> hash;for(int i = 0; i < nums.size(); i++){int x = target - nums[i];if(hash.count(x)) return {hash[x], i};hash[nums[i]] = i;}return {};}
};
面试题01.02.判定是否为字符重排
这个题目也是一个很经典的题目,也是一个一眼题
- 方法一:直接将两个字符串进行排序,相同就是true,不同就是false。时间复杂度也是最优的
class Solution
{
public:bool CheckPermutation(string s1, string s2){sort(s1.begin(),s1.end());sort(s2.begin(),s2.end());if(s1 == s2) return true;else return false;}
};
- 方法二:可以用一个数组替代哈希表,将遍历一组字符串进入哈希表,然后再遍历另外一组字符串——从哈希表中依次减少另外一组字符串的个数,最后结果为0便是true,否则剩余数字就是false。
class Solution
{
public:bool CheckPermutation(string s1, string s2) {if(s1.size() != s2.size()) return false;int hash[26] = { 0 };//先统计第一个字符串的信息for(auto ch : s1)hash[ch - 'a']++;//扫描第二个字符串,看看能不能重排for(auto ch : s2){hash[ch - 'a']--;if(hash[ch - 'a'] < 0) return false;} return true;}
};
存在重复元素
- 思路:
将数组一遍遍历,一边插入到哈希表当中,如果遍历到每个元素的时候已经存在该元素,直接返回true即可,如果遍历完之后没有元素了返回false。
class Solution
{
public:bool containsDuplicate(vector<int>& nums) {// 创建一个无序集合,用于存储nums向量中的唯一元素unordered_set <int> hash;// 遍历nums向量中的每个元素for(auto x : nums){// 如果元素已经在集合中,说明存在重复元素if(hash.count(x)) return true; // 如果发现重复元素,返回trueelse hash.insert(x); // 如果没有重复元素,将该元素插入集合中}// 如果遍历完后没有发现任何重复元素,返回falsereturn false;}
};
存在重复元素||
- 思路: 这题跟上面一题基本一样只不过增加了一个| i - j | <= k的条件。
class Solution
{
public:bool containsNearbyDuplicate(vector<int>& nums, int k) {// 创建一个哈希表,用于存储每个元素及其最后出现的位置unordered_map<int, int> hash;// 遍历nums向量中的每个元素for(int i = 0; i < nums.size(); i++){// 如果当前元素在哈希表中已经存在if(hash.count(nums[i])){// 判断当前索引与该元素上次出现索引的差是否小于等于kif(i - hash[nums[i]] <= k) return true; // 如果差值小于等于k,返回true,表示找到满足条件的重复元素}// 更新当前元素在哈希表中的位置hash[nums[i]] = i;}// 如果遍历完所有元素都没有找到满足条件的重复元素,返回falsereturn false;}
};
字母异位词分组
- 思路:
-
排序法:
对于每个字符串,将其按字母排序。排序后的字符串可以作为它们的“标识符”,即所有字母异位词排序后得到的字符串是相同的。
例如,“eat”和“tea”排序后都会变成“aet”,这使得我们能够将它们归为一组。 -
使用哈希表分组:
使用一个哈希表 unordered_map<string, vector>,其中键是排序后的字符串,值是具有相同排序后的字母异位词的字符串集合。
对于每个字符串,排序并将它放入对应的组中。如果该组已经存在,就将其添加到对应组里;如果该组不存在,就创建新组。 -
提取结果:
最后,从哈希表中提取出所有的字母异位词组并返回。
class Solution
{
public:vector<vector<string>> groupAnagrams(vector<string>& strs) {// 创建一个哈希表,key是排序后的字符串,value是与该排序字符串对应的字母异位词列表unordered_map <string, vector<string>> hash;// 1. 将所有字符串排序并分组for(auto& s : strs){// 将字符串复制到tmp中,然后排序string tmp = s;sort(tmp.begin(), tmp.end());// 根据排序后的字符串,将原始字符串加入哈希表的对应组中hash[tmp].push_back(s);}// 2. 从哈希表中提取出结果vector<vector<string>> ret;for(auto&[x, y] : hash){// 将每一组字母异位词加入到结果列表中ret.push_back(y);}// 返回结果return ret;}
};
最长公共前缀和
- 思路:
这道题的思路是通过逐个字符地检查所有字符串的字符来找出最长公共前缀。从第一个字符串的第一个字符开始,逐个比较该位置上其他字符串的字符是否相同。如果遇到不同的字符或某个字符串的长度不足,就返回当前找到的公共前缀。如果没有遇到不匹配的字符,说明第一个字符串本身就是所有字符串的公共前缀,直接返回它——中心扩展算法
class Solution
{
public:string longestCommonPrefix(vector<string>& strs) {// 遍历第一个字符串的每一个字符for(int i = 0; i < strs[0].size(); i++){// 获取当前字符char tmp = strs[0][i];// 遍历后续的字符串,检查是否在当前字符位置上与第一个字符串相同for(int j = 1; j < strs.size(); j++){// 如果某个字符串的长度小于等于i,或者字符不匹配,返回从0到i的子串作为公共前缀if(i == strs[j].size() || tmp != strs[j][i])return strs[0].substr(0, i);}}// 如果没有遇到不匹配的情况,说明第一个字符串就是公共前缀return strs[0];}
};
最长回文子串
- 思路:
这道题要求找到一个字符串中最长的回文子串。回文串是指从前往后和从后往前读都相同的字符串。我们可以通过 中心扩展法 来解决这个问题。每个回文子串都有一个中心,中心可以是一个字符(对于奇数长度回文串)或者两个字符之间(对于偶数长度回文串)。从每个字符(或字符间隙)向外扩展,检查左右两边的字符是否相等,直到不再相等为止。
class Solution
{
public:string longestPalindrome(string s) {// 获取字符串长度nint n = s.size(), begin = 0, len = 0;// 遍历每个字符,尝试找到以该字符为中心的回文串for(int i = 0; i < n; i++){// 处理奇数长度回文串,以字符s[i]为中心int right = i, left = i;// 扩展左右两边,直到不满足回文条件while(left >= 0 && right < n && s[left] == s[right]){left--;right++;}// 更新最长回文串的起始位置和长度if(right - left - 1 > len){begin = left + 1;len = right - left - 1;}// 处理偶数长度回文串,以字符s[i]和s[i+1]为中心right = i + 1, left = i;while(left >= 0 && right < n && s[left] == s[right]){left--;right++;}// 更新最长回文串的起始位置和长度if(right - left - 1 > len){begin = left + 1;len = right - left - 1;}}// 返回最长回文子串return s.substr(begin, len);}
};
二进制求和
- 思路:
我们从 a 和 b 的末尾(即最低位)开始逐位进行加法运算,类似于手动加法的过程。每一位相加时,判断是否需要进位。进位的处理通过变量 t 来存储,当两位数字加起来大于或等于2时,t 就会向下一位传递进位。最终,逐位的结果被累积到字符串 ret 中,并且需要反转,因为我们从低位到高位计算。整个过程确保处理了两者的不同长度以及最终的进位。
class Solution
{
public:string addBinary(string a, string b) {string ret; // 用于存储结果的字符串int cur1 = a.size() - 1, cur2 = b.size() - 1, t = 0; // cur1, cur2分别是a和b的当前字符索引,t是进位// 遍历两个字符串直到都遍历完并且没有进位while(cur1 >= 0 || cur2 >= 0 || t){// 如果a还有剩余位,取出a对应位置的数字并加到t中if(cur1 >= 0) t += a[cur1--] - '0'; // 如果b还有剩余位,取出b对应位置的数字并加到t中if(cur2 >= 0) t += b[cur2--] - '0'; // 将当前位的结果加到结果字符串中,t % 2是当前位(0或1),进位需要除以2ret += t % 2 + '0';t /= 2; // 更新进位,t // 2}// 由于我们是从低位到高位处理的,最后需要反转结果字符串reverse(ret.begin(), ret.end());return ret; // 返回加法结果的二进制字符串}
};
字符串相乘
- 思路:
这道题目要求实现两个大整数的乘法。我们不能直接将两个大整数转换为整数进行计算,因为它们的长度可能超出整数类型的表示范围。我们通过模拟竖式乘法的方法来手动计算乘积。首先,我们逆序遍历两个字符串,将每一位的数字相乘并加到临时结果数组中,处理乘法的每一位。然后,我们处理进位,最后将结果反转并处理前导零,得到最终的乘积结果。
class Solution
{
public:string multiply(string num1, string num2){// 获取两个字符串的长度int m = num1.size(), n = num2.size();// 反转字符串,以便从低位开始计算reverse(num1.begin(), num1.end());reverse(num2.begin(), num2.end());// 临时数组用于存储每一位的乘积结果vector<int> tmp(m + n - 1);// 进行无进位的相乘for(int i = 0; i < m; i++)for(int j = 0; j < n; j++)tmp[i + j] += (num1[i] - '0') * (num2[j] - '0');// 处理进位int cur = 0, t = 0;string ret;while(cur < m + n - 1 || t != 0){// 将当前的乘积加到结果中if(cur < m + n - 1) t += tmp[cur++];// 取当前位的数字,并更新进位ret += t % 10 + '0';t /= 10;}// 处理前导零while(ret.size() > 1 && ret.back() == '0') ret.pop_back();// 反转最终的结果字符串reverse(ret.begin(), ret.end());return ret; // 返回最终的乘积结果}
};
相关文章:
【哈希表与字符串的算法之路:思路与实现】—— LeetCode
文章目录 两数之和面试题01.02.判定是否为字符重排存在重复元素存在重复元素||字母异位词分组最长公共前缀和最长回文子串二进制求和字符串相乘 两数之和 这题的思路很简单,在读完题目之后,便可以想到暴力枚举,直接遍历整个数组两遍即可&…...
rdiff-backup备份
目录 1. 服务器备份知识点 1.1 备份策略 1.2 备份步骤和宝塔面板简介 1.3 CentOS7重要目录 2. 备份工具 2.1 tar -g 备份演示 2. rsync 备份演示 3. rdiff-backup 备份演示 4. 差异和优缺点 3. rdiff-backup安装和使用 3.1 备份命令rdiff-backup 3.2 恢复命令--…...
Netty基础—4.NIO的使用简介一
大纲 1.Buffer缓冲区 2.Channel通道 3.BIO编程 4.伪异步IO编程 5.改造程序以支持长连接 6.NIO三大核心组件 7.NIO服务端的创建流程 8.NIO客户端的创建流程 9.NIO优点总结 10.NIO问题总结 1.Buffer缓冲区 (1)Buffer缓冲区的作用 (2)Buffer缓冲区的4个核心概念 (3)使…...
贪心算法简介(greed)
前言: 贪心算法(Greedy Algorithm)是一种在每个决策阶段都选择当前最优解的算法策略,通过局部最优的累积来寻求全局最优解。其本质是"短视"策略,不回溯已做选择。 什么是贪心、如何来理解贪心(个人对贪心的…...
驻场运维服务方案书(Word文件)
目 录 第一章 背景分析 1.1. 项目背景 1.2. 项目目标 1.3. 系统现状 1.3.1. 网络系统 1.3.2. 设备清单梳理 1.3.3. 应用系统 第二章 需求分析及理解 2.1. 在重要日期能保障信息系统安全 2.2. 信息系统可长期安全、持续、稳定的运行 2.3. 提升发现安全问题、解决安全…...
嵌入式硬件--开发工具-AD使用常用操作
ad16.1.12 1.如何显示/隐藏其他图层 在pcb界面点击L--试图界面中找到“视图选项”--单层模式选择 not in single layer mode 在pcb界面点击L--试图界面中找到“视图选项”--单层模式选择 gray scale other layers 【Altium】AD如何只显示一层,隐藏其他层显示&…...
在 Ubuntu 上安装和配置 Docker 的完整指南
Docker 是一个开源的平台,旨在简化应用程序的开发、部署和运行。通过将应用程序及其依赖项打包到容器中,Docker 确保应用程序可以在任何环境中一致地运行。 目录 前言安装前的准备安装 Docker 步骤 1:更新包索引步骤 2:安装必要…...
微服务全局ID方案汇总
自增id 对于大多数系统来说,使用mysql的自增id当作主键再最合适不过了。在数据库层面就可以获取一个顺序的、唯一的、空间占用少的id。 自增id需要是 int、bigint这些整数类型,uint 支持 40 亿的数据量,bigint unsign(0 &#x…...
实验5 逻辑回归
实验5 逻辑回归 【实验目的】掌握逻辑回归算法 【实验内容】处理样本,使用逻辑回归算法进行参数估计,并画出分类边界 【实验要求】写明实验步骤,必要时补充截图 1、参照“2.1梯度下降法实现线性逻辑回归.ipynb”和“2.2 sklearn实现线性逻辑…...
【原创】在高性能服务器上,使用受限用户运行Nginx,充当反向代理服务器[未完待续]
1 起因 在公共高性能服务器上运行OllamaDeepSeek,如果按照默认配置启动Ollama程序,则自己在远程无法连接你启动的Ollama服务。 如果修改掉默认的配置,则会遇到你的Ollama被他人完全控制的安全风险。 不过,我们可以使用一个方向…...
Linux 下 MySQL 8 搭建教程
一、下载 你可以从 MySQL 官方下载地址 下载所需的 MySQL 安装包。 二、环境准备 1. 查看 MySQL 是否存在 使用以下命令查看系统中是否已经安装了 MySQL: rpm -qa|grep -i mysql2. 清空 /etc/ 目录下的 my.cnf 执行以下命令删除 my.cnf 文件: [roo…...
vue 仿deepseek前端开发一个对话界面
后端:调用deepseek的api,所以返回数据格式和deepseek相同 {"model": "DeepSeek-R1-Distill-Qwen-1.5B", "choices": [{"index": 0, "delta": {"role": "assistant", "cont…...
MinIO问题总结(持续更新)
目录 Q: 之前使用正常,突然使用空间为0B,上传文件也是0B(部署在k8s中)Q: 无法上传大文件参考yaml Q: 之前使用正常,突然使用空间为0B,上传文件也是0B(部署在k8s中) A: 1、检查pod状态…...
STM32配套程序接线图
1 工程模板 2 LED闪烁 3LED流水灯 4蜂鸣器 5按键控制LED 6光敏传感器控制蜂鸣器 7OLED显示屏 8对射式红外传感器计次 9旋转编码器计次 10 定时器定时中断 11定时器外部时钟 12PWM驱动LED呼吸灯 13 PWM驱动舵机 14 PWM驱动直流电机 15输入捕获模式测频率 16PWMI模式测频率占空…...
深入理解Linux网络随笔(七):容器网络虚拟化--Veth设备对
深入理解Linux网络随笔(七):容器网络虚拟化 微服务架构中服务被拆分成多个独立的容器,docker网络虚拟化的核心技术为:Veth设备对、Network Namespace、Bridg。 Veth设备对 veth设备是一种 成对 出现的虚拟网络接口&…...
实战指南:鸿蒙ArkTS中实现列表下拉刷新与触底加载的完整解析
前言: 在移动应用开发中,下拉刷新和触底加载更多是提升用户体验的核心功能。鸿蒙ArkUI框架通过Refresh组件和List组件的onReachEnd事件,为开发者提供了简洁高效的实现方案。本文将通过代码示例,详解如何利用ArkTS实现这两个功能。…...
【栈数据结构应用解析:常见算法题详细解答】—— Leetcode
文章目录 栈的模拟实现删除字符串中的所有相邻重复项比较含退格的字符串基本计算器||字符串解码验证栈序列 栈的模拟实现 #include <iostream>using namespace std;const int N 1e5 10;// 创建栈 int stk[N], n;// 进栈 - 本质就是顺序表里面的尾插 void push(int x) …...
Git常用操作之GitLab
Git常用操作之GitLab 小薛博客官网:小薛博客Git常用操作之GitLab官方地址 1、GitLab安装 https://gitlab.cn/install/ 1、Docker安装GitLab https://docs.gitlab.cn/jh/install/docker.html 1、设置卷位置 在设置其他所有内容之前,请配置一个新的…...
2025探索短剧行业新可能报告40+份汇总解读|附PDF下载
原文链接:https://tecdat.cn/?p41043 近年来,短剧以其紧凑的剧情、碎片化的观看体验,迅速吸引了大量用户。百度作为互联网巨头,在短剧领域积极布局。从早期建立行业专属模型冷启动,到如今构建完整的商业生态…...
各省水资源平台 水资源遥测终端机都用什么协议
各个省水资源平台 水资源遥测终端机 的建设大部分从2012年开始启动,经过多年建设,基本都已经形成了稳定的通讯要求;河北瑾航科技 遥测终端机,兼容了大部分省市的通讯协议,如果需要,可以咨询和互相学习&…...
C#+EF+SqlServer性能优化笔记
文章目录 前言一、C#EF 代码优化1.接口代码改异步2.查询异步,只查询需要的数据3.查询数据判断时4.直接使用sql查询 二、数据库优化1.减少关联表,一些基础数据,字典表可以考虑放到redis中,在代码中映射2.增加索引,删除无…...
列表动态列处理
1、在initialize()方法里,获取列表控件,添加CreateListColumnsListener监听 public void initialize(){ BillList billlist(BillList)this.getControl("billlistap"); billlist.addCreateListColumnsListener(this::beforeCreateListColumns)…...
电机控制常见面试问题(十二)
文章目录 一.电机锁相环1.理解锁相环2.电机控制中的锁相环应用3.数字锁相环(DPLL) vs 模拟锁相环(APLL)4.锁相环设计的关键技术挑战5.总结 二、磁链观测1.什么是磁链?2.为什么要观测磁链?3.怎么观测磁链&am…...
芯驿电子 ALINX 亮相德国纽伦堡,Embedded World 2025 精彩回顾
2025年3月13日,全球规模最大的嵌入式行业盛会——德国纽伦堡国际嵌入式展(embedded world 2025)圆满落幕。 在这场汇聚全球 950 家展商、3 万余专业观众的科技盛宴中,芯驿电子 ALINX 展位人头攒动,多款尖端产品吸引客户…...
西门子S7-1200 PLC远程上下载程序方案
西门子S7-1200 PLC远程上下载程序方案(巨控GRM552YW-C模块) 三步完成配置 | 全球适用 | 稳定高效 三步快速完成远程配置 硬件部署 准备巨控GRM552YW-CHE模块1台,通过网口连接西门子S7-1200 PLC以太网口。 模块支持4G/5G/Wi-Fi/网线接入外网…...
MFC窗口的创建/消息映射机制
mfc.h #include<afxwin.h>//mfc头文件//应用程序类 class MyApp:public CWinApp //继承于应用程序类 { public://程序入口virtual BOOL InitInstance(); };//框架类 class MyFrame:public CFrameWnd { public:MyFrame();//声明宏 提供消息映射机制DECLARE_MESSAGE_MAP()…...
【每日学点HarmonyOS Next知识】tab对齐、相对布局、自定义弹窗全屏、动画集合、回到桌面
1、HarmonyOS Tabs 是否能支持 tabbar 居左对齐? 当前方案为自定义tabbar实现,示例demo: Entry Component struct TabsExample {State tabArray: Array<number> [0, 1,2]State focusIndex: number 0State pre: number 0State inde…...
如何在TikTok网页版切换地区设置
今天我们来聊聊如何在TikTok网页版上更改地区设置。TikTok作为全球知名的短视频社交应用,不仅仅局限于某个国家或地区。修改地区设置可以让你探索来自不同地方的内容,享受更为丰富的社交互动体验。那么,具体该如何操作呢?让我一步…...
redis工具类
前言 Redis 是一个高性能的键值存储系统,广泛应用于缓存、消息队列、实时分析等场景。为了更高效地操作 Redis,许多开发者会选择使用 Redisson 客户端库。 依赖配置 首先确保您的项目中已经包含了 Redisson 的最新版本(如 3.44.0ÿ…...
【Python办公】Excel通用匹配工具(双表互匹)
目录 专栏导读1、背景介绍2、库的安装3、核心代码4、完整代码总结专栏导读 🌸 欢迎来到Python办公自动化专栏—Python处理办公问题,解放您的双手 🏳️🌈 博客主页:请点击——> 一晌小贪欢的博客主页求关注 👍 该系列文章专栏:请点击——>Python办公自动化专…...
安徽省青少年信息学奥林匹克竞赛初中组第1题LuoguP762
先放题目: 【题目背景】.你 .可 .以 .选 .择 .跳 .过 .背 .景 .部 .分。初春的一天,正是乍暖还寒时候,狂风乍起。小可可裹紧了单薄的外衣,往小雪家中赶去。“今天真不是个出门的时候啊!”小可可感叹道。“但是我还有东西要买………...
AVL树的平衡算法的简化问题
AVL树是一种紧凑的二叉查找树。它的每个结点,都有左右子树高度相等,或者只相差1这样的特性。文章https://blog.csdn.net/aaasssdddd96/article/details/106291144给出了一个例子。 为了便于讨论,这里对AVL树的结点平衡情况定义2个名称&#…...
NFS实验配置笔记
NFS NFS服务 nfs,最早是Sun这家公司所发展出来的,它最大的功能就是可以透过网络,让不同的机器,不同的操作系统,进行实现文档的共享。所以你可以简单的将他看做是文件服务器。 实验准备 ①先准备一个服务器端的操作…...
C盘清理技巧分享:释放空间,提升电脑性能
目录 1. 引言 2. C盘空间不足的影响 3. C盘清理的必要性 4. C盘清理的具体技巧 4.1 删除临时文件 4.2 清理系统还原点 4.3 卸载不必要的程序 4.4 清理下载文件夹 4.5 移动大文件到其他盘 4.6 清理系统缓存 4.7 使用磁盘清理工具 4.8 清理Windows更新文件 4.9 禁用…...
【云馨AI-大模型】RAGFlow功能预览:Dify接入外部知识库RAGFlow指南
介绍 Dify介绍 开源的 LLM 应用开发平台。提供从 Agent 构建到 AI workflow 编排、RAG 检索、模型管理等能力,轻松构建和运营生成式 AI 原生应用。比 LangChain 更易用。官网:https://dify.ai/zh RAGFlow介绍 RAGFlow 是一款基于深度文档理解构建的…...
大模型学习笔记------Llama 3模型架构之旋转编码(RoPE)
大模型学习笔记------Llama 3模型架构之旋转编码(RoPE) 1、位置编码简介1.1 绝对位置编码1.2 相对位置编码 2、旋转编码(RoPE)2.1 基本概念---旋转矩阵2.2 RoPE计算原理2.2.1 绝对位置编码2.2.2 相对位置编码 3、旋转编码…...
Anthropic 的模型
Anthropic 的模型(特别是 Claude 系列)之所以在性能和推理能力上表现强劲,可以从技术设计、研究理念、训练方法以及应用优化等多个方面进行详细分析。以下是基于当前信息(截至 2025 年 3 月 13 日)和行业趋势的深入剖析…...
初探大模型开发:使用 LangChain 和 DeepSeek 构建简单 Demo
最近,我开始接触大模型开发,并尝试使用 LangChain 和 DeepSeek 构建了一个简单的 Demo。通过这个 Demo,我不仅加深了对大模型的理解,还体验到了 LangChain 和 DeepSeek 的强大功能。下面,我将分享我的开发过程以及一些…...
FPGA初级项目10——基于SPI的DAC芯片进行数模转换
FPGA初级项目10——基于SPI的DAC芯片进行数模转换 DAC芯片介绍 DAC 芯片(数字模拟转换器)是一种将数字信号转换为连续模拟信号(如电压或电流)的集成电路,广泛应用于电子系统中,连接数字世界与模拟世界。 …...
【论文解读】Contrastive Learning for Compact Single Image Dehazing(AECR-Net)
文章目录 问题创新网络主要贡献Autoencoder-like Dehazing NetworkAdaptive Mixup for Feature PreservingDynamic Feature Enhancement1. 可变形卷积的使用2. 扩展感受野3. 减少网格伪影4. 融合空间结构信息 Contrastive Regularization1. 核心思想2. 正样本对和负样本对的构建…...
unity基础——线段与拖尾
1、LineRenderer(线段渲染器) 为空物体加上组件添加材质 选择默认线段的材质 Default—Line Color:可以修改颜色Corner Vertices:角顶点 圆滑度 End Cap Vertices:边缘顶点 线段编辑 1、可以移动线段点的位置…...
【服务器知识】Nginx路由匹配规则说明
Nginx路由匹配规则说明 **一、Nginx路由匹配核心机制****二、匹配规则语法详解**1. **精确匹配 ()**2. **前缀匹配 (^~ 或 /)**3. **正则匹配 (~ 或 ~*)**4. **通配符匹配 (*)** **三、路由匹配优先级顺序****四、高级路由技巧**1. **条件判断 (if语句)**2. **路径重写 (rewrit…...
Python----数据可视化(Pyecharts三:绘图二:涟漪散点图,K线图,漏斗图,雷达图,词云图,地图,柱状图折线图组合,时间线轮廓图)
1、涟漪特效散点图 from pyecharts.globals import SymbolType from pyecharts.charts import EffectScatter from pyecharts.faker import Faker from pyecharts import options as opts from pyecharts.globals import ThemeType # 绘制图表 es (EffectScatter(init_optsop…...
机器学习中的梯度下降是什么意思?
梯度下降(Gradient Descent)是机器学习中一种常用的优化算法,用于最小化损失函数(Loss Function)。通过迭代调整模型参数,梯度下降帮助模型逐步逼近最优解,从而提升模型的性能。 1.核心思想 梯…...
C语言中的字符串与数组的关系
在C语言中,字符串和数组之间有着紧密的关系。理解它们的区别和联系对于编写高效且可靠的代码至关重要。在本篇博文中,我们将详细分析字符串和数组在C语言中的概念、它们的关系以及如何在编程中应用它们。 一、字符串与数组的基础知识 1.1 数组概念 在C语言中,数组是一组相…...
Ubuntu 18,04 LTS 通过APT安装mips64el的交叉编译器。
安装 g-5v的版本: sudo apt update sudo apt install g-5-mips64el-linux-gnuabi64 How to Install g-5-mips64el-linux-gnuabi64 in Ubuntu 18.04 安装 gcc/g-7v的版本: sudo apt-get install gcc-mips64el-linux-gnu* g-mips64el-linux-gnu* -y 安装…...
MySQL 衍生表(Derived Tables)
在SQL的查询语句select …. from …中,跟在from子句后面的通常是一张拥有定义的实体表,而有的时候我们会用子查询来扮演实体表的角色,这个在from子句中的子查询会返回一个结果集,这个结果集可以像普通的实体表一样查询、连接&…...
C++ vector 核心知识:常用操作与示例详解
在C编程中,vector 是标准模板库(STL)中最常用的容器之一。它以其动态数组的特性、高效的尾部操作和便捷的随机访问能力,成为处理动态数据的首选工具。无论是初学者还是经验丰富的开发者,掌握 vector 的使用方法和性能优…...
不同开发语言对字符串的操作
一、字符串的访问 Objective-C: 使用 characterAtIndex: 方法访问字符。 NSString *str "Hello, World!"; unichar character [str characterAtIndex:0]; // 访问第一个字符 H NSLog("%C", character); // 输出: H NSString 内部存储的是 UTF-16 编…...
Qt从入门到入土(十) -数据库操作--SQLITE
认识 数据库是用于存储、管理和检索数据的系统化集合。它是一种按照特定结构组织数据的存储方式,通过软件(数据库管理系统,DBMS)来实现数据的高效存储、查询、更新和管理。通过文件存储数据适用于少量的数据,而当拥有…...