自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(93)
  • 收藏
  • 关注

原创 算法入门22——二分查找算法——寻找峰值

峰值元素是指其值严格大于左右相邻值的元素。给你一个整数数组nums,找到峰值元素并返回其索引。数组可能包含多个峰值,在这种情况下,返回所在位置即可。你可以假设。你必须实现时间复杂度为O(log n)的算法来解决此问题。nums =[1,2,3,1]23 是峰值元素,你的函数应该返回其索引 2。nums =1 或 5你的函数可以返回索引 1,其峰值元素为 2;或者返回索引 5, 其峰值元素为 6。i。

2026-01-23 16:58:32 67

原创 算法入门21——二分查找算法——山脉数组的峰顶索引

给定一个长度为n的整数数组arr,其中的值递增到一个然后递减。返回峰值元素的下标。你必须设计并实现时间复杂度为O(log(n))的解决方案。111arr。

2026-01-22 13:32:26 68 2

原创 算法入门20——二分查找算法——搜索插入位置

给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。请必须使用时间复杂度为O(log n)的算法。214。

2026-01-21 21:16:12 80

原创 算法入门19——二分查找算法——X的平方根

给你一个非负整数x,计算并返回x的。由于返回类型是整数,结果只保留,小数部分将被不允许使用任何内置指数函数和算符,例如或者x ** 0.5。x = 42x = 828 的算术平方根是 2.82842..., 由于返回类型是整数,小数部分将被舍去。

2026-01-21 18:49:20 63

原创 算法入门18——二分查找算法——在排序数组中查找元素的第一个和最后一个位置

给你一个按照非递减顺序排列的整数数组nums,和一个目标值target。请你找出给定目标值在数组中的开始位置和结束位置。如果数组中不存在目标值target,返回[-1, -1]。你必须设计并实现时间复杂度为O(log n)的算法解决此问题。

2026-01-21 18:16:17 59

原创 深度学习进阶:偏差方差分析与正则化策略全解析

本篇博客将带你深入探讨偏差与方差的本质,并系统性地梳理 L1/L2 正则化、Dropout 以及数据增强等主流优化手段。

2025-12-30 12:33:12 731

原创 从逻辑回归到浅层神经网络:深度学习入门核心概念详解(附源码)

在人工智能飞速发展的今天,深度学习已成为推动计算机视觉、自然语言处理、语音识别等领域的核心技术。但对于刚入门的同学来说,面对“激活函数”“反向传播”“梯度下降”等术语,常常感到一头雾水。本文将从最基础的逻辑回归出发,逐步带你理解深度学习的核心思想,并解释为什么我们需要非线性、为什么向量化如此重要、以及浅层神经网络是如何工作的。

2025-11-26 19:14:40 698

原创 MOTR: End-to-End Multiple-Object Tracking with TRansformer推理学习

本地vscode连接antodl的服务器,然后搭建项目所需的环境,根据readme的说明进行预训练的推理,自己尝试分析推理的txt文件,最后可以通过图表可视化以及txt文本查看推理内容。

2025-10-21 15:49:06 931 1

原创 ssh远程连接服务器到vscode上“连接失败”

在Windows搜索框中输入。右键点击“命令提示符”,选择。

2025-09-14 11:20:37 861 1

原创 Linux下目录递归拷贝的单进程实现

利用POSIX API在Linux系统上编写应用程序,仿写cp命令的部分功能,将源文件/目录复制到另外一个文件或复制到另外一个目录。

2025-06-01 21:00:37 736

原创 Linux下目录遍历的实现

在实现基本功能实现的基础上,针对各种特殊情况和边界条件等进行流程的完善与优化,包括。

2025-05-27 23:04:29 721

原创 Linux下哲学家进餐问题的多线程实现与解决

利用POSIX API在Linux系统上编写应用程序,通过多线程和互斥量机制实现哲学家进餐问题(哲学家的数量可以通过简单的配置进行修改)在实现基本功能的基础上,尝试采用多种思路来预防死锁,包括并不限于以下思路。

2025-05-23 16:59:54 503

原创 Linux下生产者消费者问题的多进程实现

define SEMKEY 123 // 信号量集的键值#define SHMKEY 456 // 共享内存的键值#define BUFNUM 10 // 缓冲区大小(元素数量)#define SEMNUM 3 // 信号量数量系统资源的键值(SEMKEY/SHMKEY):用于标识和获取信号量和共享内存缓冲区大小(BUFNUM):循环缓冲区可以存储的元素数量信号量数量(SEMNUM):将创建3个信号量defined(_SEM_SEMUN_UNDEFINED)//GNU标准库#else。

2025-05-23 11:59:19 867

原创 Linux内核源码阅读——虚拟内存

不同的虚拟区间其处理操作可能不同,Linux 在这里利用了面向对象的思想,即把一个虚拟区间看成一个对象,用 vm_area_struct 描述了这个对象的属性,其中的 vm_operations_struct 结构描述了在这个对象上的操作,其定义在include/linux/mm.h。之所以这样分割,是因为每个虚拟区间可能来源不同,有的可能来自可执行映像,有的可能来自共享库,而有的则可能是动态分配的内存区,所以对每一个由vm_area_struct 结构所描述的区间的处理操作和它前后范围的处理操作不同。

2025-05-12 06:48:20 1031

原创 动态规划10——路径问题——地下城游戏

任何房间都可能对骑士的健康点数造成威胁,也可能增加骑士的健康点数,包括骑士进入的左上角房间以及公主被监禁的右下角房间。如果骑士遵循最佳路径:右 -> 右 -> 下 -> 下 ,则骑士的初始健康点数至少为 7。骑士的初始健康点数为一个正整数。如果他的健康点数在某一时刻降至 0 或以下,他会立即死亡。有些房间由恶魔守卫,因此骑士在进入这些房间时会失去健康点数(若房间里的值为。的房间里,他必须穿过地下城并通过对抗恶魔来拯救公主。个房间组成的二维网格。),要么包含增加骑士健康点数的魔法球(若房间里的值为。

2025-04-11 02:44:37 346

原创 动态规划9——路径问题——最小路径和

给定一个包含非负整数的m x n网格grid,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。每次只能向下或者向右移动一步。7因为路径 1→3→1→1→1 的总和最小。12。

2025-04-10 23:22:14 249

原创 动态规划8——路径问题——下降路径最小和

给你一个n x n的整数数组matrix,请你找出并返回通过matrix的的。可以从第一行中的任何元素开始,并从每一行中选择一个元素。在下一行选择的元素和当前行所选元素最多相隔一列(即位于正下方或者沿对角线向左或者向右的第一个元素)。具体来说,位置(row, col)的下一个元素应当是或者。13如图所示,为和最小的两条下降路径-59如图所示,为和最小的下降路径。

2025-04-06 22:44:28 200

原创 动态规划7——路径问题——礼物的最大价值

来源:牛客网在一个m×nm\times nm×n的棋盘的每一格都放有一个礼物,每个礼物都有一定的价值(价值大于 0)。你可以从棋盘的左上角开始拿格子里的礼物,并每次向右或者向下移动一格、直到到达棋盘的右下角。给定一个棋盘及其上面的礼物的价值,请计算你最多能拿到多少价值的礼物?如输入这样的一个二维数组,[1,3,1],[1,5,1],[4,2,1]那么路径 1→3→5→2→1 可以拿到最多价值的礼物,价值为12示例1。

2025-04-06 21:46:50 298

原创 动态规划6——路径问题——不同路径II

给定一个m x n的整数数组grid。一个机器人初始位于(即grid[0][0]机器人尝试移动到(即机器人每次只能向下或者向右移动一步。网格中的障碍物和空位置分别用1和0来表示。机器人的移动路径中不能包含有障碍物的方格。返回机器人能够到达右下角的不同路径数量。测试用例保证答案小于等于2 * 109。23x3 网格的正中间有一个障碍物。从左上角到右下角一共有2条不同的路径:1. 向右 -> 向右 -> 向下 -> 向下2. 向下 -> 向下 -> 向右 -> 向右101。

2025-04-06 20:37:05 382

原创 动态规划5——路径问题——不同路径

一个机器人位于一个m x n网格的左上角 (起始点在下图中标记为 “Start” )。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish” )。问总共有多少条不同的路径?283从左上角开始,总共有 3 条路径可以到达右下角。1. 向右 -> 向下 -> 向下2. 向下 -> 向下 -> 向右3. 向下 -> 向右 -> 向下282 * 109。

2025-04-06 16:06:39 234

原创 动态规划4——斐波那契数列模型——解码方法

一条包含字母A-Z的消息通过以下映射进行了然而,在已编码的消息时,你意识到有许多不同的方式来解码,因为有些编码被包含在其它编码当中("2"和"5"与"25"例如,"11106""AAJF""06"注意,可能存在无法解码的字符串。给你一个只含数字的字符串s,请计算并返回方法的。如果没有合法的方式解码整个字符串,返回0。题目数据保证答案肯定是一个的整数。s = "12"2它可以解码为 "AB"(1 2)或者 "L"(12)。s = "226"3。

2025-04-06 14:59:38 417

原创 动态规划3——斐波那契数列模型——最小花费爬楼梯

给你一个整数数组cost,其中cost[i]是从楼梯第i个台阶向上爬需要支付的费用。一旦你支付此费用,即可选择向上爬一个或者两个台阶。你可以选择从下标为0或下标为1的台阶开始爬楼梯。请你计算并返回达到楼梯顶部的最低花费。,20]15你将从下标为 1 的台阶开始。- 支付 15 ,向上爬两个台阶,到达楼梯顶部。总花费为 15。cost = [,100,,1,,100,,100,6你将从下标为 0 的台阶开始。- 支付 1 ,向上爬两个台阶,到达下标为 2 的台阶。

2025-04-06 13:57:35 399

原创 动态规划2——斐波那契数列模型——三步问题

三步问题。有个小孩正在上楼梯,楼梯有 n 阶台阶,小孩一次可以上 1 阶、2 阶或 3 阶。实现一种方法,计算小孩有多少种上楼梯的方式。结果可能很大,你需要对结果模 1000000007。:n = 3:4有四种走法:n = 5:13。

2025-04-05 17:04:01 270

原创 动态规划1——斐波那契数列模型——第 N 个泰波那契数

泰波那契序列 Tn 定义如下:T0 = 0, T1 = 1, T2 = 1, 且在 n >= 0 的条件下 Tn+3 = Tn + Tn+1 + Tn+2给你整数n,请返回第 n 个泰波那契数 Tn 的值。

2025-04-05 16:30:57 311

原创 算法入门17——二分查找算法——二分查找

给定一个n个元素有序的(升序)整型数组nums和一个目标值target,写一个函数搜索nums中的target,如果目标值存在返回下标,否则返回-1。numstarget= 949 出现在nums中并且下标为 4numstarget= 2-12 不存在nums中因此返回 -1numsn[1, 10000]nums。

2025-04-02 12:08:45 300

原创 算法入门16——滑动窗口——最小覆盖子串

给你一个字符串s、一个字符串t。返回s中涵盖t所有字符的最小子串。如果s中不存在涵盖t所有字符的子串,则返回空字符串""。tts"BANC"最小覆盖子串 "BANC" 包含来自字符串 t 的 'A'、'B' 和 'C'。"a"整个字符串 s 是最小覆盖子串。""t 中两个字符 'a' 均应包含在 s 的子串中,因此没有符合条件的子字符串,返回空字符串。t。

2025-04-02 09:47:42 207

原创 算法入门15——滑动窗口——串联所有单词的子串

给定一个字符串s和一个字符串数组wordswords中所有字符串。s中的是指一个包含words中所有字符串以任意顺序排列连接起来的子串。"abcdef""abefcd""cdabef""cdefab""efabcd""efcdab""acdbef"words返回所有串联子串在s中的开始索引。你可以以返回答案。2.[0,9]因为 words.length == 2 同时 words[i].length == 3,连接的子字符串的长度必须为 6。子串 "barfoo" 开始位置是 0。

2025-04-01 23:26:14 697

原创 算法入门14——滑动窗口——找到字符串中所有字母异位词

给定两个字符串s和p,找到s中所有p的的子串,返回这些子串的起始索引。不考虑答案输出的顺序。[0,6]起始索引等于 0 的子串是 "cba", 它是 "abc" 的异位词。起始索引等于 6 的子串是 "bac", 它是 "abc" 的异位词。[0,1,2]起始索引等于 0 的子串是 "ab", 它是 "ab" 的异位词。起始索引等于 1 的子串是 "ba", 它是 "ab" 的异位词。起始索引等于 2 的子串是 "ab", 它是 "ab" 的异位词。p。

2025-04-01 21:39:30 353

原创 算法入门13——滑动窗口——水果成篮

你正在探访一家农场,农场从左到右种植了一排果树。这些树用一个整数数组fruits表示,其中fruits[i]是第i棵树上的水果。你想要尽可能多地收集水果。给你一个整数数组fruits,返回你可以收集的水果的数目。fruits = [3可以采摘全部 3 棵树。3可以采摘 [1,2,2] 这三棵树。如果从第一棵树开始采摘,则只能采摘 [0,1] 这两棵树。4可以采摘 [2,3,2,2] 这四棵树。如果从第一棵树开始采摘,则只能采摘 [1,2] 这两棵树。,3,3,4]5。

2025-04-01 17:43:58 331

原创 算法入门12——滑动窗口——将x减到0的最小操作数

给你一个整数数组nums和一个整数x。每一次操作时,你应当移除数组nums最左边或最右边的元素,然后从x中减去该元素的值。请注意,需要数组以供接下来的操作使用。如果可以将x减到0,返回;否则,返回-1。2最佳解决方案是移除后两个元素,将 x 减到 0。-15最佳解决方案是移除后三个元素和前两个元素(总共 5 次操作),将 x 减到 0。

2025-04-01 02:26:21 216

原创 算法入门11——滑动窗口——最大连续1的个数

给定一个二进制数组nums和一个整数k,假设最多可以翻转k个0,则返回执行操作后数组中连续1的最大个数。6,1,1,1,1,粗体数字从 0 翻转到 1,最长的子数组长度为 6。10[0,0,1,1,,1,1,1,粗体数字从 0 翻转到 1,最长的子数组长度为 10。0。

2025-03-31 22:09:42 386

原创 算法入门10——滑动窗口——无重复字符的最长子串

给定一个字符串s,请你找出其中不含有重复字符的的长度。3因为无重复字符的最长子串是"abc"所以其长度为 3。1因为无重复字符的最长子串是"b"所以其长度为 1。3因为无重复字符的最长子串是"wke"所以其长度为 3。请注意,你的答案必须是的长度,"pwke"是一个子序列,不是子串。

2025-03-31 21:16:08 225

原创 算法入门9——滑动窗口——长度最小的子数组

给定一个含有n个正整数的数组和一个正整数target找出该数组中满足其总和大于等于target的长度最小的,并返回其长度如果不存在符合条件的子数组,返回0。2子数组[4,3]是该条件下的长度最小的子数组。10。

2025-03-31 20:17:57 180

原创 算法入门8——双指针——四数之和

给你一个由n个整数组成的数组nums,和一个目标值target。请你找出并返回满足下述全部条件且的四元组bcd你可以按返回答案。

2025-03-31 18:20:59 324

原创 算法入门7——双指针——三数之和

给你一个整数数组nums,判断是否存在三元组满足i!= ji!= k且j!= k,同时还满足。请你返回所有和为0且不重复的三元组。答案中不可以包含重复的三元组。不同的三元组是 [-1,0,1] 和 [-1,-1,2]。注意,输出的顺序和三元组的顺序并不重要。[]唯一可能的三元组和不为 0。[[0,0,0]]唯一可能的三元组和为 0。

2025-03-31 12:16:42 302

原创 算法入门6——双指针——和为s的两个数

1.题目来源:牛客网输入一个升序数组 array 和一个数字S,在数组中查找两个数,使得他们的和正好是S,如果有多对数字的和等于S,返回任意一组即可,如果无法找出这样的数字,返回一个空数组即可。数据范围: 0≤len(array)≤105​​ 0 \le len(array) \le 10^5 ​​\ 0≤len(array)≤105​​ , 1≤array[i]≤106 1 \le array[i] \le 10^6 \ 1≤array[i]≤106示例1。

2025-03-31 11:24:34 311

原创 算法入门5——双指针——有效三角形的个数

给定一个包含非负整数的数组nums,返回其中可以组成三角形三条边的三元组个数。3有效的组合是:2,3,4 (使用第一个 2)2,3,4 (使用第二个 2)2,2,34。

2025-03-31 02:23:44 495

原创 算法入门4——双指针——盛最多水的容器

给定一个长度为n的整数数组height。有n条垂线,第i条线的两个端点是(i, 0)和。找出其中的两条线,使得它们与x轴共同构成的容器可以容纳最多的水。返回容器可以储存的最大水量。你不能倾斜容器。49图中垂直线代表输入数组 [1,8,6,2,5,4,8,3,7]。在此情况下,容器能够容纳水(表示为蓝色部分)的最大值为 49。1。

2025-03-31 01:59:04 279

原创 算法入门3——双指针——快乐数

编写一个算法来判断一个数n是不是快乐数。如果n是快乐数就返回true;不是,则返回false。

2025-03-31 01:37:46 358

原创 算法入门2——双指针——复写零

先根据“异地”操作,然后优化成双指针下的“就地”操作。

2025-03-31 01:06:02 360

C++后端开发书籍推荐

《C++ Primer》 《Effective C++》 《More Effective C++》 《深度探索C++对象模型》 《C++ Concurrency in Action》 《Network Programming with TCP/IP》 《UNIX Network Programming》 《Design Patterns: Elements of Reusable Object-Oriented Software》 《High Performance MySQL》 《Professional C++》 《C++ Standard Library》 《Advanced Linux Programming》 《Pro Git》 《Clean Code: A Handbook of Agile Software Craftsmanship》 《The Art of Readable Code》等等

2024-04-13

C++后端学习的技术栈

C++后端学习技术栈涵盖了开发高效、可扩展、安全的服务器端应用程序所需的一系列技能与工具。其主要组成部分包括: 1.精通C++编程语言:掌握现代语言特性,遵循最佳实践,并严格遵守《Effective C++》、C++核心指南等既定编码规范。 2.深刻理解数据结构、算法与软件设计模式:能据此编写出优化且易于维护的代码,解决复杂问题并提升系统性能。 3.网络编程基础:熟练使用套接字编程、TCP/IP协议、HTTP(S)协议等,构建稳定可靠的网络通信模块。 4.并发与多线程编程:掌握C++并发库(如std::thread、std::async、std::mutex等)以及多线程设计策略,确保在多核处理器环境下实现高效并发处理。 5.数据库操作:熟悉SQL语言,能使用ODBC、JDBC等数据库接口或ORM框架(如SQLite、MySQL、PostgreSQL等)进行数据访问、存储与管理。 6.Web服务开发:了解RESTful API设计原则,能使用Web服务器库(如Poco, Boost.Beast, CppREST SDK等)或微服务框架(如gRPC)开发高性能、跨平台的Web服务。 等等

2024-04-13

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除