自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 LFU(最不经常使用) 缓存算法实现

LFU(Least Frequently Used)是一种基于访问频率的缓存淘汰策略。当缓存容量不足时,系统会优先淘汰使用频率最低的条目,当频率相同时则淘汰最久未使用的条目。本文通过C++实现了一个时间复杂度为O(1)的LFU算法方案。

2025-03-16 21:53:56 930

原创 LRU(最近最少使用)算法实现

LRU是最近最少使用(Least Recently Used)的缩写,应该是一种缓存淘汰策略。对吧?那缓存的空间有限,当缓存满了之后,需要淘汰一些数据,这时候LRU就会选择最近最少使用的那个数据项来淘汰。那我得先理解这个算法的工作原理。那LRU是怎么判断哪个数据是最近最少使用的呢?可能每个数据被访问的时候,记录一个时间戳或者顺序,然后淘汰最久没有被访问的那个。比如,如果有几个数据,每次访问的时候都更新它们的最近使用时间,当需要淘汰的时候,找时间最早的那个。那具体怎么实现呢?可能的数据结构方面,我需要

2025-03-15 22:12:56 622

原创 error:Installed (but unpackaged) file(s) found报错问题解决

error:Installed (but unpackaged) file(s) found报错问题解决

2025-01-24 11:09:41 198

原创 20241206 麒麟信安C++实习面试

2024年12月6日麒麟信安C/C++开发实习岗面试问题汇总

2024-12-06 11:24:35 428

原创 C++网络编程入门学习(三)-- 多线程的创建与同步

本篇博客将介绍C++网络编程中的多线程的创建与同步。在网络编程中,多线程是非常重要的技术,可以提高程序的并发性和性能。首先,我们将学习如何在C++中创建多线程。C++提供了多线程库,可以方便地创建和管理多个线程。我们将探讨如何使用这些库来创建线程,并讨论线程的生命周期和基本操作。接下来,我们将介绍多线程编程中的同步问题。由于多个线程同时访问共享资源可能会产生竞争条件,因此我们需要使用同步机制来保证线程的安全性。我们将讨论互斥锁、条件变量和信号量等常用的同步机制,并演示如何使用这些机制来解决多线程编程

2024-10-10 18:44:01 1197

原创 手搓一个基于C/C++的线程池

构建一个基于C/C++的线程池是并发编程的重要技术之一。线程池可以有效地管理线程资源,提高系统的并发性能和响应能力。本博客将引导读者从零开始,逐步实现一个简单而高效的线程池。我们将探索C/C++线程库的基本概念和函数,了解线程池的设计原则和运行机制。通过代码示例和详细解释,读者将学会使用互斥锁、条件变量和任务队列等关键技术,以及优化策略,提高线程池的性能和稳定性。无论是初学者还是有经验的开发者,本博客都将为大家提供全面的指导,帮助你构建一个稳定可靠的C/C++线程池,提升并发编程的能力。

2024-09-24 15:12:03 1338

原创 C++网络编程入门学习(二)-- socket通信

本博客将介绍C++网络编程中的socket通信,通过socket通信可以实现不同主机之间的数据传输。首先,我们将介绍socket的概念和基本原理,包括服务器和客户端的创建和连接过程。然后,我们将讨论socket通信的常用函数和方法,例如发送和接收数据,以及处理连接错误和异常情况。最后,我们将给出一个简单的示例代码,演示如何使用socket进行基本的聊天应用程序。通过本文的学习,读者将能够掌握C++网络编程中的socket通信基础知识,为进一步深入学习和应用打下坚实的基础。

2024-09-20 14:00:56 1496

原创 2024年华为9月4日秋招笔试真题题解

本文主要探讨了2024年华为0904秋招笔试的真题题解。文章首先介绍了华为秋招笔试的背景和重要性。随后,详细分析了笔试题目的内容,包括编程题、算法题和理论题等。对每道题目进行了解析和解答,给出了具体的解题方法和思路。最后,总结了华为秋招笔试的难度和要求,并提出了备考建议和学习心得。通过本篇文章的阅读,读者可以对华为秋招笔试的题目类型、解题思路和备考方法有一个全面的了解,为未来的笔试准备提供参考。

2024-09-12 14:31:20 5042

原创 C++网络编程入门学习(一)-- Linux环境下的C++程序编译与运行

本博客将帮助读者入门学习基于C++的网络编程,并重点介绍了在Linux环境下的C++程序编译与运行。在博客中,我们将首先介绍了几个在VSCode中常用的插件,并详细讲解了静态库与动态库的概念及使用方法。接下来,我们还将介绍了makefile的使用,包括使用makefile进行编译与运行以及不使用makefile的编译运行方法。此外,我们还提供了使用cmake进行编译与运行的方法,并引入了gdb代码调试入门的内容。通过阅读本博客,读者将能够掌握在Linux环境下的C++程序编译与运行的基本技巧。

2024-09-09 17:19:36 1945

原创 LeetCode 1423. 可获得的最大点数(很经典的一道固定窗口的滑窗题)

几张卡牌 排成一行,每张卡牌都有一个对应的点数。点数由整数数组 cardPoints 给出。每次行动,你可以从行的开头或者末尾拿一张卡牌,最终你必须正好拿 k 张卡牌。你的点数就是你拿到手中的所有卡牌的点数之和。给你一个整数数组 cardPoints 和整数 k,请你返回可以获得的最大点数。

2023-12-03 18:00:37 1074 5

原创 动态规划之树形DP

本文主要讨论动态规划中的一种常见应用——树形DP。树形DP通常应用于树状结构的问题中,通过从叶子节点到根节点的动态规划过程,计算出每个节点的状态值,并最终得出问题的解。文章将介绍树形DP的基本思想、常用解法和优化技巧,并给出实例说明。通过本文的学习,读者将对树形DP有一个更深入的理解,能够更好地应用于实际问题解决中。

2023-08-01 14:52:09 3047 2

原创 力扣每日一题--2050. 并行课程 III(拓补排序例题)

给你一个整数 n ,表示有 n 节课,课程编号从 1 到 n 。同时给你一个二维整数数组 relations ,其中 relations[j] = [prevCoursej, nextCoursej] ,表示课程 prevCoursej 必须在课程 nextCoursej 之前 完成(先修课的关系)。同时给你一个下标从 0 开始的整数数组 time ,其中 time[i] 表示完成第 (i+1) 门课程需要花费的 月份 数。请你根据以下规则算出完成所有课程所需要的 最少 月份数:如果一门课的所有先修

2023-07-28 12:40:34 415 1

原创 Python 生成随机图片验证码

本篇博客介绍了如何使用Python生成随机的图片验证码。通过使用Python的Pillow库,我们可以生成包含数字和字母的随机验证码。在本文中,我们详细介绍了如何使用Pillow库创建和修改图片。接着,我们使用随机数生成器来生成随机的验证码,并将其添加到一个新的图片中,最后保存为PNG格式。此外,我们还介绍了如何对验证码进行扭曲和噪声处理,提高了验证码的安全性和可读性。最后,我们还给出了完整的Python代码和结果展示。

2023-07-25 23:33:16 3538 2

原创 动态规划之数位dp

本篇博客主要介绍数位DP算法及其应用,包括数位DP的基本思想、常用模板以及实例分析。数位DP是一种巧妙的动态规划思路,通常用于计算某个数的某些特定数位上的特征,例如数位和、数字个数等。在文章中,我们将详细介绍数位DP方法的实现过程,包括从高到低递推、预处理等技巧。此外,我们还会提供多个案例分析,包括计算二进制中1的个数、计算区间[L,R]内数位和等。通过本篇博客的学习,读者能够掌握数位DP的基础知识,并能够迅速理解和解决各种数位DP问题。

2023-07-21 13:53:35 1148

原创 摩尔投票算法(Moore‘s Voting Algorithm)及例题

摩尔投票算法是一种常用的寻找数组中出现次数超过一半的元素的算法。该算法的核心思想是通过消除不同元素之间的数量差异,最终得到出现次数最多的元素。摩尔投票算法具有时间复杂度为O(n),空间复杂度为O(1)的优点,可广泛用于实际工程中。文章结合一个实例,详细介绍了摩尔投票算法的具体过程及实现思路,希望能够对大家理解该算法有所帮助。

2023-07-16 16:52:41 3910

原创 Django学习笔记

本篇博客主要记录了作者学习Django的笔记,内容包括了Django概述、Django项目的创建、Django视图、Django模板等方面的知识。在学习过程中,作者针对每一个知识点进行了详细的讲解,并且通过实例展示了Django的应用。此外,作者还总结了一些Django开发的注意事项和技巧,帮助读者更好地理解和掌握这门强大的Web框架。

2023-07-08 16:30:15 1172

原创 Linux学习笔记

本篇博客是关于Linux学习笔记的摘要,主要介绍了Linux的基础概念、常用命令以及实战技巧等内容。首先介绍Linux系统的组成和内核结构;接着详细介绍了Linux的常用命令,包括文件管理、权限管理、进程管理、网络管理和如何使用Vim编辑器等。总之,本篇博客提供了一份完整的Linux学习笔记,涵盖了从基础到实战的内容,是初学者入门学习Linux的良好参考资料。

2023-06-24 16:21:04 454

原创 Python学习笔记

本篇博客主要是笔者在学习Python过程中的一些总结和心得,包括Python的基础语法、函数、模块、面向对象编程等方面的内容。文章中还介绍了一些实用的Python库和工具,如NumPy等,以及如何使用Python进行数据分析和可视化。通过本文,读者可以全面了解Python的基础知识和应用,为进一步深入学习打下基础。

2023-06-13 17:16:17 2066

原创 剑指 Offer 59 - I. 滑动窗口的最大值

给你一个整数数组 nums,有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k 个数字。滑动窗口每次只向右移动一位。返回 滑动窗口中的最大值 。

2023-04-27 11:58:09 464

原创 J 严格一致

小明在太空博物馆发现n个字符串s1,s2,...sn,每个字符串由小写英文字母组成。在一次操作中,他可以选择一个字符串si,抹掉第一个字符并将其附加到字符串的末尾。例如字符串“coolming”,他可以在一次操作中将其转换为字符串“oolmingc”。现在小明想知道:为了将所有字符串变为相同,需要做的最小操作次数是多少?

2023-04-24 22:53:46 442

原创 三条好用的ChatGPT指令

三条好用的ChatGPT科研指令

2023-04-22 17:25:52 350

原创 Git学习笔记

在软件开发中,版本控制是一个非常重要的概念,而Git作为目前最流行的分布式版本控制系统之一,已经成为许多开发人员必备的技能之一。要好好了解Git的基本概念和常用操作,包括Git的版本控制流程、分支管理、远程仓库、团队协作等方面。

2023-04-17 21:27:53 451

原创 每日一题-力扣(leetcode)3. 无重复字符的最长子串(滑动窗口经典题)

在这个过程中,我们记录下每个不包含重复字符的子串的长度,最终返回其中的最大值即可。具体来说,我们可以维护一个滑动窗口,其中包含的字符都是不重复的。在这个过程中,我们可以记录下每个不包含重复字符的子串的长度,最终返回其中的最大值即可。我们可以使用两个指针 left 和 right 来表示当前子串的左右边界,然后不断移动 right 指针,直到遇到重复字符为止。此时,我们可以记录下当前子串的长度,并将 left 指针移动到重复字符的下一个位置,继续寻找下一个不含重复字符的子串。非常经典的一道滑动窗口的题目。

2023-03-16 11:25:08 189

原创 每日一题-力扣(leetcode)2542. 最大子序列的分数

给你两个下标从 0 开始的整数数组 nums1 和 nums2 ,两者长度都是 n ,再给你一个正整数 k 。你必须从 nums1 中选一个长度为 k 的 子序列 对应的下标。对于选择的下标 i0 ,i1 ,..., ik - 1 ,你的 分数 定义如下:nums1 中下标对应元素求和,乘以 nums2 中下标对应元素的 最小值 。用公示表示: (nums1[i0] + nums1[i1] +...+ nums1[ik - 1]) * min(nums2[i0] , nums2[i1],

2023-01-24 16:34:38 449

原创 每日一题-力扣(leetcode)581. 最短无序连续子数组

给你一个整数数组 nums ,你需要找出一个 连续子数组 ,如果对这个子数组进行升序排序,那么整个数组都会变为升序排序。请你找出符合题意的 最短 子数组,并输出它的长度。

2023-01-20 20:14:05 168

原创 每日一题-力扣(leetcode)2368. 受限条件下可到达节点的数目

现有一棵由 n 个节点组成的无向树,节点编号从 0 到 n - 1 ,共有 n - 1 条边。给你一个二维整数数组 edges ,长度为 n - 1 ,其中 edges[i] = [ai, bi] 表示树中节点 ai 和 bi 之间存在一条边。另给你一个整数数组 restricted 表示 受限 节点。在不访问受限节点的前提下,返回你可以从节点 0 到达的 最多 节点数目。注意,节点 0 不 会标记为受限节点。

2023-01-18 14:21:20 837

原创 每日一题-力扣(leetcode)2059. 转化数字的最小运算数

给你一个下标从 0 开始的整数数组 nums ,该数组由 互不相同 的数字组成。另给你两个整数 start 和 goal 。整数 x 的值最开始设为 start ,你打算执行一些运算使 x 转化为 goal 。你可以对数字 x 重复执行下述运算:如果 0

2023-01-15 23:49:53 469

原创 前端页面插件集成--代码块样式设置(代码高亮 prism)

前端页面插件集成--代码块样式设置(代码高亮 prism),点击进入prismjs.com,选择自己喜欢的代码高亮样式下载下来。引入 CSS 和 JS 样式。Prism is a lightweight, extensible syntax highlighter, built with modern web standards in mind. It’s used in millions of websites, including some of those you visit daily.

2023-01-07 16:33:41 977

原创 前端页面插件集成-Markdown编辑器

前端项目集成mavon-editor的Markdown插件,并回显到网页上。首先需要下载MarkDown的插件包,在前端项目的static中创建lieb目录 引入下载好的所有文件,引入css、js、Jquary文件,定义一个textarea区域 作为MarkDown的载体.

2023-01-05 16:09:03 3948

原创 力扣【LeetCode】第 326 场周赛

力扣【LeetCode】第326场周赛

2023-01-04 20:19:06 235

原创 2016年长沙理工大学初试算法题

2016年长沙理工大学850数据结构算法题题解

2022-10-18 20:34:36 583

原创 6-12 Shortest Path(Dijkstra算法)

Write a program to find the weighted shortest distances from any vertex to a given source vertex in a digraph. It is guaranteed that all the weights are positive.Format of functions:void ShortestDist( MGraph Graph, int dist[], Vertex S );where MGraph i

2022-10-16 20:11:51 308

原创 邻接表与邻接矩阵的相互转换

邻接矩阵与邻接表的相互转换

2022-09-21 22:35:45 11853 11

原创 Count Connected Components

Write a function to count the number of connected components in a given graph.

2022-09-04 22:34:11 376

原创 7-20 Binary Search Tree

A binary search tree is uniquely determined by a given ordered insertions of a sequence of positive integers. On the other hand, a given binary search tree may correspond to several different insertion sequences. Now given several insertion sequences, it i

2022-08-18 12:53:41 356

原创 邻接表转化为逆邻接表

已知有n个顶点的有向图G的邻接表,设计算法求邻接表G的逆邻接表。

2022-08-12 13:00:03 5311 3

原创 常用排序算法汇总

常用排序算法代码汇总。

2022-08-02 12:53:26 219

原创 Insert or Merge

Insertion sort iterates, consuming one input element each repetition, and growing a sorted output list. Each iteration, insertion sort removes one element from the input data, finds the location it belongs within the sorted list, and inserts it there. It r

2022-07-30 23:19:15 213

原创 Insertion or Heap Sort

Insertion sort iterates, consuming one input element each repetition, and growing a sorted output list. Each iteration, insertion sort removes one element from the input data, finds the location it belongs within the sorted list, and inserts it there. It r

2022-07-28 20:05:18 174

原创 Heaps

In computer science, a heap is a specialized tree-based data structure that satisfies the heap property: if P is a parent node of C, then the key (the value) of P is either greater than or equal to (in a max heap) or less than or equal to (in a min heap) t

2022-07-27 23:06:04 295

“科大国创杯”2023 年安徽省青少年信息学科普日活动 ACSP-J 组

“科大国创杯”2023 年安徽省青少年信息学科普日活动 ACSP-J 组(初中组)题解

2023-04-19

“科大国创杯”2023年安徽省青少年信息学科普日活动小学组题解

“科大国创杯”2023年安徽省青少年信息学科普日活动小学组题解

2023-04-19

空空如也

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

TA关注的人

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