- 博客(102)
- 收藏
- 关注
原创 浅谈Rust语言特性
单线程下是对的,也许多线程就错了。要知道你可能从前写好了基础库,没有完整测试它在高并发下的表现,继续用可能就出错了(数据错误、内存访问错误)。是一种由Mozilla开发的系统编程语言,专注于内存安全、并发性和高性能,旨在替代C/C++等传统系统编程语言。Rust 提供大量默认的标准库。上面的代码中,就第一行,就 use 了一堆模块,这一点和 Python 的。对 Rust 来说,编译器保证指出你的错误,对 C++ 来说,编译器没有这种保证,它也无法保证。内存安全和保证(安全的操作与不安全的操作)
2025-07-19 11:35:01
150
原创 如何防止GitHub上的敏感信息被泄漏?
当我们发现了历史 commit 中包含敏感信息后,第一步便是如何移除掉,由于 Git 是版本控制系统,直接删除文件重新 commit 就不要指望了,最简单的方法是使用一个工具——BFG。如大家所了解的,随着GitHub的用户越来越多,GitHub上的敏感信息被泄漏的问题也越来越严重。那么如何做,才能防止此类事情发生呢?上文中给出了发现和移除的方法,但是这些仅仅是补救措施,我们在日常 Git 使用途中应该从哪些方面考虑来减少这类事件的发生呢?好了,今天的文章分享就到这里了,大家是否有收获呢?
2025-07-18 18:46:02
278
原创 哈希表法求环形链表
我们遍历所有结点并在哈希表中存储每个结点的引用(或内存地址)。如果当前结点为空结点 null(即已检测到链表尾部的下一个结点),那么我们已经遍历完整个链表,并且该链表不是环形链表。如果当前结点的引用已经存在于哈希表中,那么返回 true(即该链表为环形链表)。实际上,我们可以通过检查一个结点此前是否被访问过来判断链表是否为环形链表。常用的方法是使用哈希表。
2025-07-17 18:31:56
214
原创 一次遍历法求解买卖的最佳时机
使我们感兴趣的点是上图中的峰和谷。我们需要找到最小的谷之后的最大的峰。我们可以维持两个变量——minprice 和 maxprofit,它们分别对应迄今为止所得到的最小的谷值和最大的利润(卖出价格与最低价格之间的最大差值)。
2025-07-17 10:59:21
199
原创 经典排序算法之冒泡排序
以上是两个比较容易/简单的排序方式了,一般来说是最容易想到的,当然也是速度最慢的两个(因为时间复杂度很高),如果平时自己用用肯定没有问题,但是如果需要吹牛的话,可能这样就不很妥当了,下面介绍一些更加有意思的排序算法。它重复地遍历要排序的序列,会依次比较两个相邻的元素,如果发现两个相邻的元素顺序错误就把它们交换过来。遍历序列的工作会重复地进行直到没有相邻的元素需要交换位置,也就是说序列的排序工作已经完成。(Bubble Sort),是计算机科学与技术领域中较为简单的一种排序算法。
2025-07-16 11:43:34
198
原创 经典排序算法之希尔排序
希尔排序(Shell Sort)由Donald Shell于1959年提出,是插入排序的改进版本,又称缩小增量排序。其核心思想是通过动态分组和逐步缩小增量,减少元素比较和移动次数,从而提升排序效率。实际上,希尔排序是插入排序的修改版,根据步长由长到短分组,进行排序,直到步长为1为止,属于插入排序的一种。是一种基于插入排序的高效排序算法,通过分组和逐步缩小增量的策略优化排序效率。今天的文章分享就到这里了,希望对大家的学习和工作有所帮助!
2025-07-15 21:04:34
369
原创 Rust语言
另外 Rust 的性能同样堪称优秀,其很好的实现高并发,可以说是专为现代多核电脑设计的编程语言,近年来也有较为不错的发展,但是 Rust 一直没有成熟的 IDE,更不要提在线代码编辑器。可能很多小伙伴不太了解 Rust,这个语言非常完美的解决了 C/C++ 等编程语言手工管理内存的问题。而 Java 或 Python 的垃圾回收算法则会影响效率,使用 Rust,你无需顾虑任何诸如内存泄漏的问题。是由Mozilla主导开发的通用、编译型编程语言,支持函数式、并发式、过程式以及面向对象的编程风格。
2025-07-15 10:58:18
212
原创 杨辉三角的认识与学习
(又称贾宪三角、帕斯卡三角形)是一种以三角形形式呈现二项式系数的数学工具,其核心特性包括对称性、递推关系以及与组合数学紧密关联的应用场景。给定一个非负整数 numRows,生成杨辉三角的前 numRows 行。今天的文章分享就到这里了,希望对大家的学习和工作有所帮助!在杨辉三角中,每个数是它左上方和右上方的数的和。
2025-07-14 09:24:15
215
原创 二叉树的递归和迭代解法
所以我们从包含根结点且相应深度为 1 的栈开始。然后我们继续迭代:将当前结点弹出栈并推入子结点。每一步都会更新深度。直观的方法是通过递归来解决问题。在这里,我们演示了 DFS(深度优先搜索)策略的示例。我们的想法是使用 DFS 策略访问每个结点,同时在每次访问时更新最大深度。我们还可以在栈的帮助下将上面的递归转换为迭代。
2025-07-13 18:52:46
125
原创 递归算法解对称二叉树
就像人站在镜子前审视自己那样。镜中的反射与现实中的人具有相同的头部,但反射的右臂对应于人的左臂,反之亦然。今天的文章分享就到这里了,希望对大家的学习和工作有所帮助!例如,二叉树 [1,2,2,3,4,4,3] 是对称的。如果一个树的左子树与右子树镜像对称,那么这个树是对称的。因此,该问题可以转化为:两个树在什么情况下互为镜像?给定一个二叉树,检查它是否是镜像对称的。
2025-07-13 08:01:46
112
原创 有限元分析Abaqus 2024百度云盘下载(附详细步骤)
一般来说,指的是一款功能强大的有限元分析(FEA)软件,广泛应用于工程仿真领域,支持从简单线性分析到复杂非线性问题的求解。目前使用较广泛的版本是Abaqus 2024,深受使用者的喜爱。
2025-07-12 15:05:36
1408
原创 Mastercam 2026中文版网盘资源下载与安装教程共享
如大家所熟悉的,Mastercam是一款基于PC平台的CAD/CAM工具,广泛应用于机械设计、数控编程及加工等领域,因其强大的功能特性和良好的兼容性,深受使用者的喜爱。设计模块:支持复杂曲线曲面设计,提供Loft/Ruled/Revolved等7种参数曲面生成方法,包含曲面剪裁恢复、过渡曲面生成等工具;下载途径:如果对机械设计、数控编程及加工等感兴趣,想要下载学习的话,可以去Mastercam的官方网站或者一些专业的软件下载平台找找看。好了,今天的文章分享就到这里了,希望对大家的学习有帮助哦!
2025-07-12 09:10:25
1322
原创 通过定义循环不变式来证明此代码的正确性
循环不变式是在循环的每次迭代之前和之后为真的条件。现在指向列表中的某个结点(但不是最后一个元素),并且列表中直到。因此,在循环结束后,直到最后一个元素的所有元素都不包含重复项。我们可以用归纳法证明这种情况确实是循环不变式。的部分不包含重复元素。在另一个循环迭代之后,发生两件事之一。因此它不能包含任何重复的元素。可以通过定义循环不变式来证明此代码的正确性。必定指向最后一个元素,因为再往后,在循环的最后一次迭代中,
2025-07-11 12:04:40
128
原创 Python里藏着人生哲学和漫画
一般来说,大部分Python程序员都知道,在 Python 里 import this,会出现 Tim Peters 编写的 Zen Of Python(Python 之禅)。其中每一句话都可能对人生有指导作用。,会跳转到漫画网页 xkcd,讲述一个人因为前夜学习了 Python 就能在天上飞的故事...就可以对应上设计领域「Less is more」的经典名言。在 Python 里输入。
2025-07-10 17:45:32
256
原创 程序员利器之Gulp插件
一般来说,Gulp 内置的功能很少,为了扩展功能满足需求,我们经常会使用到插件,你可以在此查找你想要的插件。2. 在 gulpfile.js 中引入 gulp-less 插件。今天的文章分享就到这里了,希望对大家的学习和工作有所帮助!1. 安装:命令行 -> 进入项目所在目录 ->
2025-07-10 11:00:20
400
原创 Softmax函数的学习
将一个多维数据(一个样本)映射到一个 0 - 1 之间的数值上,有没有什么方法从数学上让一个样本映射到多个 0 - 1 之间的数值呢?答案是通过Softmax函数。定义了新的假设函数(hypothesis function)之后,我们要得到其对应的代价函数(cost function)。为什么选用指数函数呢?如大家所了解的,在二元的逻辑回归模型中,我们用。使所有概率之和为 1,是对概率分布进行归一化。
2025-07-09 16:43:59
207
原创 经典算法题之产生随机
具体方法是,利用 (rand7() - 1) * 7 + rand7() 产生随机数 x,如果大于 40 则继续随机直到小于等于 40 为止,如果小于等于 40,则产生的随机数为 (x - 1) / 4 + 1。rand7() 返回 1 ~ 7 的自然数,构造新的函数 (rand7() - 1) * 7 + rand7(),这个函数会随机产生 1 到 49 的自然数。已知有个 rand7() 的函数,返回 1 到 7 随机自然数,怎样利用这个 rand7() 构造 rand10(),随机 1 ~ 10。
2025-07-09 08:50:38
196
原创 经典算法题之抛硬币吃苹果的概率问题
设先手者得到苹果的概率为 p,第 1 次抛硬币得到苹果的概率为 p = 1/2,在第 3 次(3,5,7…)以后得到苹果的概率为 p/4(这是因为这种只有在第1次和第2次抛硬币都没有抛到正面,概率为 1/4 = 1/2 * 1/2 的时候才有可能发生,而且此时先手者此刻面临和开始相同的局面);所以可以列出等式 p = 1/2 + p /4,p = 2/3(注意 p 表示先手者得到苹果的概率)。)次抛硬币得到苹果,而后手只可能在偶数次(2,4,6,8…问先抛者吃到苹果的概率是多少?
2025-07-08 09:03:39
189
原创 编辑器Vim的快速入门
如大家所了解的,Vim是一个很古老的编辑器,但是并没有随着时间的流逝消失在编辑器/IDE 的竞争中,Vim 独创的模式机制和 hjkl 移动光标方式使得使用者在编辑文件时可以双手不离开键盘,极大地提升了工作效率。由于 Vim 学习曲线极为陡峭,导致许多初学者往往在刚刚开始的时候便放弃了学习,十分可惜,本文旨在以最无痛的方式带领读者初尝一下 Vim 的滋味。上图搜索结果有些尴尬,所以,当我们不小心打开 Vim 后该怎么关闭呢?(当然,如果你不确定的话,可以多按几下) 然后直接输入。,好了,应该已经退出了。
2025-07-07 17:51:23
452
原创 Crontab的一些基础操作及应用
所以对于一些简单的计划任务我们完全可以使用语法糖来写,例如,我希望每一次重启后记录一下日期到。,其核心功能是通过预定义的规则自动触发脚本或命令执行,广泛应用于日志清理、数据备份等场景。分 时 日 月 星期 要运行的命令。怎么样,是不是很好理解?
2025-07-07 11:03:30
120
原创 按计数分类的思路与算法分享
我们可以将每个字符串 s 转换为字符数 count,由26个非负整数组成,表示 a,b,c 的数量等。我们使用这些计数作为哈希映射的基础。,其中总共有26个条目。在 python 中,表示将是一个计数的元组。当且仅当它们的字符计数(每个字符的出现次数)相同时,两个字符串是字母异位词。在 Java 中,我们的字符数。,其中总共有 26 个条目。的散列化表示将是一个用。
2025-07-06 15:37:35
143
原创 在数组中当要删除的元素很少时怎么办
现在考虑数组包含很少的要删除的元素的情况。例如,num=[1,2,3,5,4],val=4。之前的算法会对前四个元素做不必要的复制操作。另一个例子是 num=[4,1,2,3,5],val=4。似乎没有必要将 [1,2,3,5] 这几个元素左移一步,因为问题描述中提到元素的顺序可以更改。当我们遇到 nums[i]=val 时,我们可以将当前元素与最后一个元素进行交换,并释放最后一个元素。请注意,被交换的最后一个元素可能是您想要移除的值。但是不要担心,在下一次迭代中,我们仍然会检查这个元素。
2025-07-06 10:57:56
112
原创 什么是代码中的好注释?
因为在后续功能扩展的时候,很有可能在其内部添加一些其他的函数调用,并且这个功能并不一定是当初开发这个函数的人继续扩展添加,如果调用顺序发生错误,很可能会出现很多麻烦。比如在合作开发的时候,写的一些 API,这些 API 的函数的参数、返回值、以及函数的作用。工作中我见到过很多开发者写的类似返回 bool 值的方法的注释,都类似“是否是一个十进制数字”这样,这样就不是一个好注释,那么到底是。我们在写代码的时候,有些地方是一定要写注释的,这些地方的注释一定要尽可能的详细,并且无歧义。
2025-07-05 10:56:56
222
原创 PCA在经典降维方面的应用
我们希望找出一个新的基向量所代表的空间 P(每列是一个基向量),原始的数据 A 在 P 的衡量下的新的表示方式为 Z,即 Z = AP,如果 (1/m)*Z(T)Z 能变成一个对角矩阵(除对角线外其余元素为 0),那么 P 就是我们想找的那组基向量。除了用方差衡量我们要取的坐标轴外,还应考虑数据在新维度上的散布不具有任何相关性,回到最开头的问题,在原始数据中,两个属性(学习时长和成绩)具有相关性,我们希望降维来去除这种相关性,这也是 PCA 的意义之一。计算一下 A 的转置与 A 相乘。
2025-07-04 15:14:59
239
原创 AI岗位需求之真正精通简历上的项目经历
例如,一个图片分类的项目,大部分同学都是一层 Embedding 几层 RNN,跑了一遍代码,这样没有深度的宽口径项目,只能扣分不能加分。对每一个写入简历中的项目,一定要保证自己弄情况了其中所有的算法原理,能够回答出为什么选用这个损失函数等类似的问题,细节弄明白。在从无到有的队伍组建过程中,招聘都是粗放模式的,你了解各种常见机器学习算法的原理、应用场景以及优缺点等等。虽然要求上不那么简单,但对于普通水平的同学们来讲,也没有必要强行让自己对标大牛的标准,把自己弄得很焦虑。
2025-07-04 12:36:15
154
原创 浅谈系统研发工程师的岗位职责和任职要求
如你所知,系统开发工程师是专注于设计、开发、测试及优化计算机系统与软件应用的专业技术人员,其工作贯穿需求分析、架构设计、编码实现到系统运维全流程。
2025-07-03 16:29:58
173
原创 用什么编辑器求职表现最好?
老牌文本编辑器 Sublime 和 GitHub 推出的 Atom 之间的对比非常有趣。虽然 Sublime 日前仍旧占据较多的份额,但是从 Google 的所搜趋势看,Atom 的热度更高一筹。的 Visual Studio,Atom 也占据了不错的比例。看来程序员大多喜欢轻量级的文本编辑器。这种分析并不能表明因果性,纯属调侃,但是从侧面反映了程序员生活的一些现状。根据他们的调查,使用 Sublime 的程序员最多,其次是 VIM 和。探究开发者使用的编辑器,操作系统,语言和面试表现之间的关系。
2025-07-02 17:51:47
113
原创 MIT线性代数课程
不可否认,对于很多想入门机器学习但不能加入对应教育体系的人而言,公开课是一个从入门到精通的捷径。如今在线课程五花八门,水平也参差不齐。
2025-07-01 12:07:37
150
原创 计算机视觉的定义及应用方向
计算机视觉主要研究如何帮助机器“看”世界,使用摄像头来代替人眼获取图像信息,通过深度学习算法对图像中的某些既定目标进行识别、跟踪以及重建等。通过机器实现人眼的某些功能。目前,名声大噪的 VR、AR 以及 3D 重建等方向,都属于计算机视觉领域的一部分。近两年来,机器学习、深度学习、人工智能等方向逐步成为很多同学最关注的研究和就业方向。不可否认,计算机视觉作为深度学习的应用领域之一,在工业界取得了蓬勃的发展,也是目前最热门的方向之一。今天的文章分享就到这里了,希望对大家的学习和工作有所帮助!
2025-06-30 10:47:28
177
原创 动力仿真Adams 2024网盘资源下载与安装教程分享
如大家所知,是一款机械系统动力学仿真软件,主要用于虚拟样机分析、运动学和动力学仿真,广泛应用于汽车、航空航天、工程机械等领域。开放性与扩展性:提供SDK和工具箱(如Virtual Test Lab),支持二次开发;跨平台兼容性:支持Windows和UNIX系统。。
2025-06-30 09:58:15
1009
1
原创 原型设计Axure RP网盘资源下载与安装教程共享
对于初学者来说,我们熟悉一下其定义:是一款常用的快速原型设计工具,主要用于创建应用软件或Web网站的线框图、流程图、原型和规格说明文档,广泛应用于产品经理、UI/UX设计师等专业领域。商业分析师、产品经理;UI/UX设计师、交互设计师;程序员及信息架构师。。
2025-06-29 12:35:56
1515
原创 双指针法解排序数组中的重复项
当我们遇到 nums[j]≠nums[i] 时,跳过重复项的运行已经结束,因此我们必须把它(nums[j])的值复制到 nums[i+1]。然后递增 i,接着我们将再次重复相同的过程,直到 j 到达数组的末尾为止。数组完成排序后,我们可以放置两个指针 i 和 j,其中 i 是慢指针,而 j 是快指针。只要 nums[i]=nums[j],我们就增加 j 以跳过重复项。是一种通过两个指针协同遍历数据结构以优化时间复杂度的算法技巧,主要分为对撞指针和快慢指针两种类型。我们先来了解其定义:。
2025-06-29 12:10:55
181
原创 中心扩展算法的概念及应用
你可能会问,为什么会是 2n−1 个,而不是 n 个中心?原因在于所含字母数为偶数的回文的中心可以处于两字母之间(例如 “abba” 的中心在两个 ‘b′ 之间)。我们观察到回文中心的两侧互为镜像。因此,回文可以从它的中心展开,并且只有 2n−1 个这样的中心。事实上,只需使用恒定的空间,我们就可以在 O(n2) 的时间内解决这个问题。今天的文章分享就到这里了,希望对大家的学习和工作有所帮助!
2025-06-28 16:37:15
130
原创 两遍哈希表法求两数之和
在第一次迭代中,我们将每个元素的值和它的索引添加到表中。然后,在第二次迭代中,我们将检查每个元素所对应的目标元素 (target−nums[i]) 是否存在于表中。我用“近似”来描述,是因为一旦出现冲突,查找用时可能会退化到 O(n)。但只要你仔细地挑选哈希函数,在哈希表中进行查找的用时应当被摊销为 O(1)。为了对运行时间复杂度进行优化,我们需要一种更有效的方法来检查数组中是否存在目标元素。如果存在,我们需要找出它的索引。通过以空间换取速度的方式,我们可以将查找时间从 O(n) 降低到 O(1)。
2025-06-28 08:51:05
290
原创 经典算法排序之桶排序(Bucket Sort)
桶排序的原理是将数组分到有限数量的桶中,再对每个桶子再分别排序(有可能再使用别的排序算法或是以递归方式继续使用桶排序进行排序),最后将各个桶中的数据有序的合并起来。今天的文章分享就到这里了,希望对大家的学习和工作有所帮助!
2025-06-27 15:10:19
176
原创 浅谈C++ 中泛型编程(模版编程)
C++ 是一种强大且灵活的编程语言,支持多种编程范式,使得开发者能够选择最适合特定问题的解决方案。在实际开发中,面向对象编程、泛型编程、函数式编程和元编程是最常用的几种范式。允许编写可以处理不同数据类型的通用代码,主要通过模板实现。C++ 的模板机制使得代码可以对多种数据类型进行操作而无需重复编写相似的代码。),避免了代码重复。而且模板在编译期进行类型检查,确保类型一致性。此外,模板是在编译期展开的,因此与运行时多态相比,它通常更高效。函数可以处理不同类型的参数(如。今天主要与大家一起来介绍和学习。
2025-06-27 10:42:04
216
原创 API访问Token的概念及解析
许多机构和安全指南(例如 OWASP API Security Project)建议采用短期 Token 来降低账户泄露风险,而一些分析报告(例如 Akamai 的《State of the Internet Security Report – Retail Attacks and API Traffic Report 2019》)则对 API 攻击趋势进行了深入探讨。如大家所了解的,API访问Token是用于第三方应用调用服务的关键措施,如支付接口、地图 API等。
2025-06-25 20:58:03
361
原创 浅谈身份认证Token类型
身份认证Token(Authentication Token) 身份认证Token是最常见的一种Token类型,主要用于用户身份验证。例如,我们在使用微信扫码登录或GitHub OAuth授权时,系统会生成一个Token来识别用户,而无需直接传递密码。2. 目标网站使用该Token确认用户身份,无需保存用户密码。就像现实世界的钥匙、通行证或票据,它能够让系统识别身份、授予权限,或者标记数据。1. 用户在PC端扫描二维码,微信服务器返回一个加密的Token。不得不说,这种方式大幅降低了密码泄露的风险。
2025-06-25 11:46:31
113
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人