logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

Linux之动静态链接

静态链接就是把库中的.o进行合并,和上述过程一样 所以链接其实就是将编译之后的所有目标文件连同用到的一些静态库运行时库组合,拼装成一个独立 的可执行文件。其中就包括我们之前提到的地址修正,当所有模块组合在一起之后,链接器会根据我 们的.o文件或者静态库中的重定位表找到那些需要被重定位的函数全局变量,从而修正它们的地址。这 其实就是静态链接的过程。静态库是没有加载过程,编译器进行链接的时候,在加载之

文章图片
#linux#运维#服务器
算法日常・每日刷题--<位运算>4

摘要: 题目要求在整数数组中找到唯一出现一次的数字(其余数字均出现三次)。解决方案采用位运算,按32位逐位统计1的个数。对于每个二进制位,统计所有数字在该位上1的总数,若该位总数模3余1,则结果的该位置1。该方法满足O(n)时间复杂度和O(1)空间复杂度要求。例如,输入[2,2,3,2]时,逐位计算后得出唯一数字3。代码通过双重循环实现位统计与结果构建。

文章图片
#算法
数据结构之如何让opencode帮我们完成单元测试

本文介绍了如何在VS2022中使用GoogleTest框架为C/C++项目编写单元测试。首先创建一个新项目到现有解决方案中,用gtest为单链表接口编写带注释的测试代码。测试方案形成后,在build模式下执行分析,可以查看分支覆盖率等测试结果。测试完成后,开发人员还能根据需求继续扩展测试用例。整个过程演示了从创建测试项目到分析测试结果的完整工作流程。

文章图片
#单元测试
算法日常・每日刷题--<动态规划>6

本题为动态规划经典问题,机器人从网格左上角到右下角,只能向右或向下移动,且遇障碍物(值为1)不可通行。状态转移方程为:dp[i][j] = dp[i-1][j] + dp[i][j-1],若当前位置有障碍,则 dp[i][j] = 0。通过初始化 dp[0][1] = 1 简化边界处理,最终返回 dp[m][n] 即可。时间复杂度 O(mn),空间复杂度 O(mn)。

文章图片
#算法#leetcode#数据结构
算法日常・每日刷题--<动态规划>5

机器人从m×n网格左上角出发,每次只能向右或向下移动,求到达右下角的不同路径数。使用动态规划,状态转移方程为:dp[i][j] = dp[i-1][j] + dp[i][j-1]。初始化dp[0][1]=1,简化边界处理。第一行和第一列仅有一条路径(全向右或全向下)。时间复杂度O(mn),空间复杂度O(mn)。代码实现简洁高效,适用于m,n≤100。

文章图片
#算法#数据结构#leetcode
数据结构之树&&二叉树(二)

<think>我们根据要求生成≤150字的摘要。内容涵盖二叉树定义、特殊二叉树、性质、存储、堆。需要精简。输出中文。</think>二叉树是算法与底层结构的基础,严格区分左右孩子。特殊二叉树有满二叉树、完全二叉树、BST;完全二叉树适合数组存储,堆由此实现。核心性质包括结点数、高度关系及下标映射。存储分顺序(数组,适合堆)和链式(二叉链表,最常用)。堆是顺序存储的完全二叉树

文章图片
#数据结构#算法
算法日常・每日刷题--<BFS&&最短路径>4

675. 为高尔夫比赛砍树 - 力扣(LeetCode)675. 为高尔夫比赛砍树 - 你被请来给一个要举办高尔夫比赛的树林砍树。树林由一个 m x n 的矩阵表示, 在这个矩阵中: * 0 表示障碍,无法触碰 * 1 表示地面,可以行走 * 比 1 大的数 表示有树的单元格,可以行走,数值表示树的高度每一步,你都可以向上、下、左、右四个方向之一移动一个单位,如果你站的地方有一棵树,那么你可以决定

#算法#宽度优先
算法日常・每日刷题--<链表>4

题目LCR078(同主站23题)要求合并K个升序链表为一个有序链表。核心思路是利用小根堆(优先队列)高效获取全局最小值节点:将所有非空链表头节点入堆,循环取出堆顶最小节点接入结果链表,并将该节点的后继(若存在)加入堆中,直到堆为空。这种方法的时间复杂度为O(NlogK),其中N为总节点数,K为链表数量,相比暴力解法的O(KN)更高效。示例输入[[1,4,5],[1,3,4],[2,6]]会合并为[

文章图片
#算法
数据结构之链表OJ题(下)

本文介绍了三个链表相关算法题解:1) 141题使用快慢指针判断链表是否有环;2) 142题在判断有环基础上找到环入口,通过计算两段链表长度差定位交点;3) LCR026题重排链表,先找到中点,逆置后半段,再交替插入前半段。三题均涉及快慢指针技巧,并综合运用了链表基本操作,展现了处理链表问题的典型思路。

文章图片
#数据结构#链表
    共 26 条
  • 1
  • 2
  • 3
  • 请选择