<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[mr_fangf的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/mr_fangf</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; mr_fangf]]></copyright><item><title><![CDATA[账单AA制系统]]></title><link>https://blog.youkuaiyun.com/mr_fangf/article/details/151777366</link><guid>https://blog.youkuaiyun.com/mr_fangf/article/details/151777366</guid><author>mr_fangf</author><pubDate>Wed, 17 Sep 2025 05:51:38 +0800</pubDate><description><![CDATA[《室友账单AA制系统》是一款基于Next.js和Prisma的合租开销管理工具，支持Google OAuth认证、智能账单分摊和自动结算功能。系统采用现代化技术栈（React 19、TypeScript、PostgreSQL）开发，通过自动计算分摊金额、优化转账次数算法，解决合租场景下的账单混乱问题。提供完整的开发部署指南，包含数据库设计、API接口和核心功能实现，支持一键安装和本地运行。主要功能包括多类型开销记录、实时账务概览、智能结算方案生成及用户管理等，适合需要公平透明分摊生活费用的合租群体使用。]]></description><category></category></item><item><title><![CDATA[PCL使用贪婪三角形算法曲面重构]]></title><link>https://blog.youkuaiyun.com/mr_fangf/article/details/140600535</link><guid>https://blog.youkuaiyun.com/mr_fangf/article/details/140600535</guid><author>mr_fangf</author><pubDate>Mon, 22 Jul 2024 09:26:41 +0800</pubDate><description><![CDATA[贪婪投影三角化算法是一种对原始点云进行快速三角化的算法，该算法假设曲面光滑，点云密度变化均匀，不能在三角化的同时对曲面进行平滑和孔洞修复。方法：（1）将三维点通过法线投影到某一平面（2）对投影得到的点云作平面内的三角化（3）根据平面内三位点的拓扑连接关系获得一个三角网格曲面模型。]]></description><category></category></item><item><title><![CDATA[PCL利用KDTree计算点云平均点间距]]></title><link>https://blog.youkuaiyun.com/mr_fangf/article/details/140600370</link><guid>https://blog.youkuaiyun.com/mr_fangf/article/details/140600370</guid><author>mr_fangf</author><pubDate>Mon, 22 Jul 2024 09:21:04 +0800</pubDate><description><![CDATA[在很多经典的点云处理算法中，设置参数总是与点间距有关，或者也可以叫点云密度，例如在计算点云特征时，邻域范围的选择受到点间距的影响，很多情况下时不能小于点间距的，因此在算法运行前，通过计算平均点间距得到一个大致的点间距范围，用于特征参数的设置是很有必要的。]]></description><category></category></item><item><title><![CDATA[PCL下采样(VoxelGrid(体素栅格))]]></title><link>https://blog.youkuaiyun.com/mr_fangf/article/details/140494923</link><guid>https://blog.youkuaiyun.com/mr_fangf/article/details/140494923</guid><author>mr_fangf</author><pubDate>Wed, 17 Jul 2024 14:51:08 +0800</pubDate><description><![CDATA[点云数据中总会出现点分布不均匀的情况，可以通过下采样来使得点数据分别更平均，有利于曲面重构等后续处理，PCL自带的VoxelGrid(体素栅格)可以很好的完成这一任务，主要就是创建一个三维体素栅格(就是每个比较小的立方体组成的体素栅格)。在每个体素(三维立方体)里面，求取该立方体内的所有点云重心点来代表这个立方体的表示，以此达到下采样的目的。]]></description><category></category></item><item><title><![CDATA[PCL对不同稀疏度的点进行划分(点云分割)]]></title><link>https://blog.youkuaiyun.com/mr_fangf/article/details/140493592</link><guid>https://blog.youkuaiyun.com/mr_fangf/article/details/140493592</guid><author>mr_fangf</author><pubDate>Wed, 17 Jul 2024 14:18:38 +0800</pubDate><description><![CDATA[在处理一些大型的点云数据时，总会出现部分点稀疏部分点密集的情况，直接进行曲面重构时的参数会无法同时满足不同情况，此时可以进行下采样降低密集点的密度，也可以进行上采样增加稀疏点的密度，这里直接把稀疏点和密集点划分为两部分，分别进行重构。]]></description><category></category></item><item><title><![CDATA[PCL使用KDtree查询近邻点(K近邻搜索)以及半径内近邻点查询并可视化查询结果]]></title><link>https://blog.youkuaiyun.com/mr_fangf/article/details/140319315</link><guid>https://blog.youkuaiyun.com/mr_fangf/article/details/140319315</guid><author>mr_fangf</author><pubDate>Wed, 10 Jul 2024 11:28:14 +0800</pubDate><description><![CDATA[本文使用KDtree对点云数据进行K近邻搜索以及半径内近邻搜索，代码如下，K近邻搜索为注释掉的一段，需要使用时解除注释即可。// 包含相关头文件int main()// 移除无效点，其中 cloud 为初始点云，cloud_out 为去除无效点后的点云//创建KDtree// 设置要搜索的点云，建立KDTree// 存储查询近邻点索引// 存储近邻点对应距离的平方// 初始化一个查询点// 查询距point最近的k个点++i) {//}//// 原始点云（白色）]]></description><category></category></item><item><title><![CDATA[在kvm虚拟机上实现mpi计算排序算法]]></title><link>https://blog.youkuaiyun.com/mr_fangf/article/details/124752999</link><guid>https://blog.youkuaiyun.com/mr_fangf/article/details/124752999</guid><author>mr_fangf</author><pubDate>Fri, 13 May 2022 15:34:55 +0800</pubDate><description><![CDATA[简述
使用cpp调用快排实现在kvm虚拟机上的mpi计算，网络拓扑为树状拓扑。
代码如下
在这里插入代码片#include&lt;iostream&gt;
//#include&lt;windows.h&gt;
#include &lt;unistd.h&gt;
#include&lt;mpi.h&gt;
#include&lt;vector&gt;
#include &lt;algorithm&gt;
#include &lt;ctime&gt;
#include &lt;fstream&gt;
#inc]]></description><category></category></item><item><title><![CDATA[python可视化管理kvm虚拟机（使用libvirt、qemu连接虚拟机）]]></title><link>https://blog.youkuaiyun.com/mr_fangf/article/details/124752775</link><guid>https://blog.youkuaiyun.com/mr_fangf/article/details/124752775</guid><author>mr_fangf</author><pubDate>Fri, 13 May 2022 15:30:18 +0800</pubDate><description><![CDATA[简述
对于云计算的实践，在虚拟机上面布置kvm虚拟机后使用python调用libvirt库进行远程可视化管理，实现输出虚拟机信息、新建虚拟机、删除虚拟机等功能，并在虚拟机集群上面运行mpi代码。
用pycharm专业版连接kvm的步骤见本文章。
代码如下：
#encoding=utf-8

import libvirt
import tkinter as tk
import time
import os
import subprocess


def list_connection():#主机信息
    ]]></description><category></category></item><item><title><![CDATA[【力扣刷题】540.有序数组中的单一元素（python）]]></title><link>https://blog.youkuaiyun.com/mr_fangf/article/details/122922141</link><guid>https://blog.youkuaiyun.com/mr_fangf/article/details/122922141</guid><author>mr_fangf</author><pubDate>Mon, 14 Feb 2022 12:40:53 +0800</pubDate><description><![CDATA[题目简述
给你一个仅由整数组成的有序数组，其中每个元素都会出现两次，唯有一个数只会出现一次。
请你找出并返回只出现一次的那个数。
你设计的解决方案必须满足 O(log n) 时间复杂度和 O(1) 空间复杂度。
示例 1：
输入: nums = [1,1,2,3,3,4,4,8,8]
输出: 2
示例 2：
输入: nums =  [3,3,7,7,10,11,11]
输出: 10
提示

1 &lt;= nums.length &lt;= 10^5
0 &lt;= nums[i] &lt;= 10^5

]]></description><category></category></item><item><title><![CDATA[【力扣刷题】136.只出现一次的数字（python）]]></title><link>https://blog.youkuaiyun.com/mr_fangf/article/details/122900103</link><guid>https://blog.youkuaiyun.com/mr_fangf/article/details/122900103</guid><author>mr_fangf</author><pubDate>Sat, 12 Feb 2022 18:17:57 +0800</pubDate><description><![CDATA[题目简述
给定一个非空整数数组，除了某个元素只出现一次以外，其余每个元素均出现两次。找出那个只出现了一次的元素。
说明：
你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗？
示例 1：
输入: [2,2,1]
输出: 1
示例 2：
输入: [4,1,2,1,2]
输出: 4
题目分析
题目是非常简单的题目，如果只想达成基本要求的话只需排序后遍历即可。代码如下：
class Solution:
    def singleNumber(self, nums: List[int]) -&gt; ]]></description><category></category></item><item><title><![CDATA[【力扣刷题】94.二叉树的中序遍历（python）]]></title><link>https://blog.youkuaiyun.com/mr_fangf/article/details/122899432</link><guid>https://blog.youkuaiyun.com/mr_fangf/article/details/122899432</guid><author>mr_fangf</author><pubDate>Sat, 12 Feb 2022 17:26:47 +0800</pubDate><description><![CDATA[题目简述
给定一个二叉树的根节点 root ，返回它的 中序 遍历。
示例 1：

输入：root = [1,null,2,3]
输出：[1,3,2]
输入：root = [1,null,2,3]
输出：[1,3,2]
示例 2：
输入：root = []
输出：[]
示例 3：
输入：root = [1]
输出：[1]
示例4：

输入：root = [1,2]
输出：[2,1]
示例5：

输入：root = [1,null,2]
输出：[1,2]
提示

树中节点数目在范围 [0, 100] 内
-1]]></description><category></category></item><item><title><![CDATA[【力扣刷题】1020.飞地的数量（python）]]></title><link>https://blog.youkuaiyun.com/mr_fangf/article/details/122899136</link><guid>https://blog.youkuaiyun.com/mr_fangf/article/details/122899136</guid><author>mr_fangf</author><pubDate>Sat, 12 Feb 2022 17:09:00 +0800</pubDate><description><![CDATA[题目简述
给你一个大小为 m x n 的二进制矩阵 grid ，其中 0 表示一个海洋单元格、1 表示一个陆地单元格。
一次 移动 是指从一个陆地单元格走到另一个相邻（上、下、左、右）的陆地单元格或跨过 grid 的边界。
返回网格中 无法 在任意次数的移动中离开网格边界的陆地单元格的数量。
示例 1：

输入：grid = [[0,0,0,0],[1,0,1,0],[0,1,1,0],[0,0,0,0]]
输出：3
解释：有三个 1 被 0 包围。一个 1 没有被包围，因为它在边界上。
示例 2：

输入]]></description><category></category></item><item><title><![CDATA[【力扣刷题】1984.学生分数的最小差值（python）]]></title><link>https://blog.youkuaiyun.com/mr_fangf/article/details/122877339</link><guid>https://blog.youkuaiyun.com/mr_fangf/article/details/122877339</guid><author>mr_fangf</author><pubDate>Fri, 11 Feb 2022 12:17:56 +0800</pubDate><description><![CDATA[题目简述
给你一个 下标从 0 开始 的整数数组 nums ，其中 nums[i] 表示第 i 名学生的分数。另给你一个整数 k 。
从数组中选出任意 k 名学生的分数，使这 k 个分数间 最高分 和 最低分 的 差值 达到 最小化 。
返回可能的 最小差值 。
示例 1：
输入：nums = [90], k = 1
输出：0
解释：选出 1 名学生的分数，仅有 1 种方法：

[90] 最高分和最低分之间的差值是 90 - 90 = 0
可能的最小差值是 0

示例 2：
输入：nums = [9,4,1]]></description><category></category></item><item><title><![CDATA[【力扣刷题】2.两数相加（python）]]></title><link>https://blog.youkuaiyun.com/mr_fangf/article/details/122866126</link><guid>https://blog.youkuaiyun.com/mr_fangf/article/details/122866126</guid><author>mr_fangf</author><pubDate>Thu, 10 Feb 2022 17:54:57 +0800</pubDate><description><![CDATA[适合新手学习版本]]></description><category></category></item><item><title><![CDATA[【力扣刷题】1.两数之和（python）]]></title><link>https://blog.youkuaiyun.com/mr_fangf/article/details/122865205</link><guid>https://blog.youkuaiyun.com/mr_fangf/article/details/122865205</guid><author>mr_fangf</author><pubDate>Thu, 10 Feb 2022 17:15:54 +0800</pubDate><description><![CDATA[题目简述
给定一个整数数组 nums 和一个整数目标值 target，请你在该数组中找出 和为目标值 target  的那 两个 整数，并返回它们的数组下标。
你可以假设每种输入只会对应一个答案。但是，数组中同一个元素在答案里不能重复出现。
你可以按任意顺序返回答案。
示例 1：
输入：nums = [2,7,11,15], target = 9
输出：[0,1]
解释：因为 nums[0] + nums[1] == 9 ，返回 [0, 1] 。
示例 2：
输入：nums = [3,2,4], targe]]></description><category></category></item><item><title><![CDATA[【力扣刷题】989.数组形式的整数加法（python）]]></title><link>https://blog.youkuaiyun.com/mr_fangf/article/details/122858418</link><guid>https://blog.youkuaiyun.com/mr_fangf/article/details/122858418</guid><author>mr_fangf</author><pubDate>Thu, 10 Feb 2022 12:49:32 +0800</pubDate><description><![CDATA[题目简述
对于非负整数 X 而言，X 的数组形式是每位数字按从左到右的顺序形成的数组。例如，如果 X = 1231，那么其数组形式为 [1,2,3,1]。
给定非负整数 X 的数组形式 A，返回整数 X+K 的数组形式。
示例 1：
输入：A = [1,2,0,0], K = 34
输出：[1,2,3,4]
解释：1200 + 34 = 1234
示例 2：
输入：A = [2,7,4], K = 181
输出：[4,5,5]
解释：274 + 181 = 455
示例 3：
输入：A = [2,1,5],]]></description><category></category></item><item><title><![CDATA[【力扣刷题】1447.最简分数（python）]]></title><link>https://blog.youkuaiyun.com/mr_fangf/article/details/122858020</link><guid>https://blog.youkuaiyun.com/mr_fangf/article/details/122858020</guid><author>mr_fangf</author><pubDate>Thu, 10 Feb 2022 12:11:58 +0800</pubDate><description><![CDATA[题目简述
给你一个整数 n ，请你返回所有 0 到 1 之间（不包括 0 和 1）满足分母小于等于  n 的 最简 分数 。分数可以以 任意 顺序返回。
示例 1：
输入：n = 2
输出：[“1/2”]
解释：“1/2” 是唯一一个分母小于等于 2 的最简分数。
示例 2：
输入：n = 3
输出：[“1/2”,“1/3”,“2/3”]
示例 3：
输入：n = 4
输出：[“1/2”,“1/3”,“1/4”,“2/3”,“3/4”]
解释：“2/4” 不是最简分数，因为它可以化简为 “1/2” 。
示例]]></description><category></category></item><item><title><![CDATA[【力扣刷题】125.验证回文串（python）]]></title><link>https://blog.youkuaiyun.com/mr_fangf/article/details/122848261</link><guid>https://blog.youkuaiyun.com/mr_fangf/article/details/122848261</guid><author>mr_fangf</author><pubDate>Wed, 09 Feb 2022 19:28:40 +0800</pubDate><description><![CDATA[题目简述
给定一个字符串，验证它是否是回文串，只考虑字母和数字字符，可以忽略字母的大小写。
说明：本题中，我们将空字符串定义为有效的回文串。
示例 1：
输入: “A man, a plan, a canal: Panama”
输出: true
解释：“amanaplanacanalpanama” 是回文串
示例 2：
输入: “race a car”
输出: false
解释：“raceacar” 不是回文串
提示

1 &lt;= s.length &lt;= 2 * 105
字符串 s 由 ASCII]]></description><category></category></item><item><title><![CDATA[【力扣刷题】2006.差的绝对值为 K 的数对数目（python）]]></title><link>https://blog.youkuaiyun.com/mr_fangf/article/details/122840011</link><guid>https://blog.youkuaiyun.com/mr_fangf/article/details/122840011</guid><author>mr_fangf</author><pubDate>Wed, 09 Feb 2022 13:31:36 +0800</pubDate><description><![CDATA[题目简述
给你一个整数数组 nums 和一个整数 k ，请你返回数对 (i, j) 的数目，满足 i &lt; j 且 |nums[i] - nums[j]| == k 。
|x| 的值定义为：

如果 x &gt;= 0 ，那么值为 x 。
如果 x &lt; 0 ，那么值为 -x 。

示例 1：
输入：nums = [1,2,2,1], k = 1
输出：4
解释：差的绝对值为 1 的数对为：

[1,2,2,1]
[1,2,2,1]
[1,2,2,1]
[1,2,2,1]

示例 2：
输入：num]]></description><category></category></item><item><title><![CDATA[【力扣刷题】121.买卖股票的最好时机（python）]]></title><link>https://blog.youkuaiyun.com/mr_fangf/article/details/122813002</link><guid>https://blog.youkuaiyun.com/mr_fangf/article/details/122813002</guid><author>mr_fangf</author><pubDate>Mon, 07 Feb 2022 18:41:50 +0800</pubDate><description><![CDATA[题目简述
给定一个数组 prices ，它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。
你只能选择 某一天 买入这只股票，并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。
返回你可以从这笔交易中获取的最大利润。如果你不能获取任何利润，返回 0 。
示例 1：
输入：[7,1,5,3,6,4]
输出：5
解释：在第 2 天（股票价格 = 1）的时候买入，在第 5 天（股票价格 = 6）的时候卖出，最大利润 = 6-1 = 5 。
注意利润不能是]]></description><category></category></item></channel></rss>