自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 复原IP地址

例如:"0.1.2.201" 和 "192.168.1.1" 是 有效的 IP 地址,但是 "0.011.255.245"、"192.168.1.312" 和 "192.168@1.1" 是 无效的 IP 地址。有效的 IP 地址 正好由四个整数(每个整数位于 0 到 255 之间组成,且不能含有前导 0),整数之间用 '.' 分隔。给定一个只包含数字的字符串,复原它并返回所有可能的 IP 地址格式。和切割回文字符串相似。

2024-10-07 16:27:45 221

原创 Tiny-Agent-本地Ollama来实现调用

我采用的是Ollama拉取到本地的llama3.1模型,我前面的文章有介绍。(因为我不知道我下载到电脑的哪里,所以用模型名称)下面给出调用代码。我终端调用llama3.1后发现,大模型并没有给出答案。进一步说明调用工具成功。给出输出的结果示例:下面是用英文来提问,回复也是英文,我查看了明天的天气,相差是不多。下面可以说是一个学习笔记。上面这篇文章中给了谷歌搜索的注册地址。下面给出全部代码,适合直接copy。下面是中文提问,给的数据就差了蛮多。

2024-09-30 17:16:25 351

原创 ollama和RAG的本地运行

继上周刚刚入手的RAG,这周继续沿用上周的思想模块,做了一个这样已读乱回的这个样子,还请有大佬帮忙指教。参考的是GitHub上的。然后,流程基本和上周一致,下面给出全部代码和示例。3、给大家看看结果哈,纯属是已读乱回,我要哭死!1、刚做的时候是没有向量库的,我们用这个代码。2、做完向量库入库后,用如下代码。下面给出每个模块代码。1、文件读取工具模块。4、rerank模块。

2024-09-30 10:19:54 996

原创 @staticmethod 和 @classmethod的区别

选择使用 `@staticmethod` 还是 `@classmethod` 取决于你的方法是否需要访问类属性或实例属性,或者是否需要在没有实例的情况下调用。- 常用于修改类的状态,例如创建实例时不使用 `__init__` 方法,或者需要访问类属性时。- `@classmethod` 需要一个 `cls` 参数,该参数代表类本身。- 它可以在没有创建类的情况下调用,即不需要类的实例或类本身,可以直接通过类来调用。- 它不需要 `self`(实例)或 `cls`(类)作为第一个参数。

2024-09-30 08:58:43 227

原创 基于ollama的本地RAG实践

先放参考的原文链接。

2024-09-27 16:19:06 624

原创 Ollama在Windows安装,使用,简单调用API

在Windows本地安装ollama,官方网页:https://ollama.com/download/windows下载完安装包,安装就好,默认应该是C盘。应该是没办法改,如果有小伙伴能改,也请告知一下。

2024-09-25 10:04:37 5301

原创 组合总数-216

找出所有相加之和为 n 的 k 个数的组合。组合中只允许含有 1 - 9 的正整数,并且每种组合中不存在重复的数字。示例 2: 输入: k = 3, n = 9 输出: [[1,2,6], [1,3,5], [2,3,4]]示例 1: 输入: k = 3, n = 7 输出: [[1,2,4]]

2024-09-24 15:00:29 165

原创 二叉搜索树转换为累加树

给出二叉 搜索 树的根节点,该树的节点值各不相同,请你将其转换为累加树(Greater Sum Tree),使每个节点 node 的新值等于原树中大于或等于 node.val 的值之和。节点的左子树仅包含键 小于 节点键的节点。节点的右子树仅包含键 大于 节点键的节点。左右子树也必须是二叉搜索树。

2024-09-23 22:05:08 301

原创 二叉搜索树中的搜索

在二叉搜索树(BST)中,每个节点的值都大于其左子树中的所有节点的值,同时小于其右子树中的所有节点的值。这是二叉搜索树的关键特性,它使得二叉搜索树非常适合进行高效的搜索操作。你需要在BST中找到节点值等于给定值的节点。这种递归逻辑确保了我们每次都在正确的子树中搜索,直到找到匹配的值或者搜索完整个子树。这样,我们就可以高效地找到给定值在二叉搜索树中的位置。基于二叉搜索树的这一特性,我们可以使用递归方法来搜索特定的值。在上述示例中,如果要找的值是 5,但因为没有节点值为 5,我们应该返回 NULL。

2024-09-17 18:55:22 191

原创 合并二叉树

你需要将他们合并为一个新的二叉树。合并的规则是如果两个节点重叠,那么将他们的值相加作为节点合并后的新值,否则不为 NULL 的节点将直接作为新二叉树的节点。给定两个二叉树,想象当你将它们中的一个覆盖到另一个上时,两个二叉树的一些节点便会重叠。注意: 合并必须从两个树的根节点开始。

2024-09-16 22:50:14 228

原创 从中序与后序遍历序列构造二叉树

首先回忆一下如何根据两个顺序构造一个唯一的二叉树,相信理论知识大家应该都清楚,就是以 后序数组的最后一个元素为切割点,先切中序数组,根据中序数组,反过来再切后序数组。一层一层切下去,每次后序数组最后一个元素就是节点元素。第四步:切割中序数组,切成中序左数组和中序右数组 (顺序别搞反了,一定是先切中序数组)第二步:如果不为空,那么取后序数组最后一个元素作为节点元素。第三步:找到后序数组最后一个元素在中序数组的位置,作为切割点。第五步:切割后序数组,切成后序左数组和后序右数组。第六步:递归处理左区间和右区间。

2024-09-16 20:28:12 440

原创 112路径总和

给定一个二叉树和一个目标和,判断该树中是否存在根节点到叶子节点的路径,这条路径上所有节点值相加等于目标和。返回 true, 因为存在目标和为 22 的根节点到叶子节点的路径 5->4->11->2。示例: 给定如下二叉树,以及目标和 sum = 22,说明: 叶子节点是指没有子节点的节点。

2024-09-16 16:38:22 258

原创 python中的self关键字

关键字来调用同一个类中的方法,Python 解释器会认为你在尝试调用一个全局函数,而不是类的方法。或者,在函数下写 countNodes = self.countNodes。关键字来指明你正在调用当前类的一个方法。正确的调用方式应该是。在 Python 中,如果你没有使用。是一个方法,因此在调用它时需要使用。代码报错的原因在于最后一行。

2024-09-13 17:07:06 193

原创 翻转二叉树

的左右子节点的关键步骤。通过这种方式,当前节点的左子节点变为右子节点,而右子节点变为左子节点。方法,以当前节点的左子节点作为参数,继续对左子树进行翻转。方法,以当前节点的右子节点作为参数,继续对右子树进行翻转。,此时它的左右子节点已经交换完毕,从而实现了整棵树的翻转。:当递归遍历完成后,返回当前节点。

2024-09-11 16:49:26 237

原创 二叉树层序遍历

给你一个二叉树,请你返回其按 层序遍历 得到的节点值。(即逐层地,从左到右访问所有节点)。

2024-09-10 12:49:12 187

原创 Python中的类和函数的区别

下述是举了一个遍历二叉树的例子为什么要创建一个类来实现遍历?为什么又要创建一个类的实例?只用函数实现调用和用创建实例类来调用有什么区别?

2024-09-09 10:47:16 880 1

原创 239. 滑动窗口最大值

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

2024-06-26 16:52:32 137

原创 LeetCode150. 逆波兰表达式求值

输入: ["10", "6", "9", "3", "+", "-11", " * ", "/", " * ", "17", "+", "5", "+"]给定逆波兰表达式总是有效的。每个运算对象可以是整数,也可以是另一个逆波兰表达式。平常使用的算式则是一种中缀表达式,如 ( 1 + 2 ) * ( 3 + 4 )。该算式的逆波兰表达式写法为 ( ( 1 2 + ) ( 3 4 + ) * )。逆波兰表达式:是一种后缀表达式,所谓后缀就是指运算符写在后面。根据 逆波兰表示法,求表达式的值。

2024-06-25 18:03:29 338

原创 LeetCode1047. 删除字符串中的所有相邻重复项

给出由小写字母组成的字符串 S,重复项删除操作会选择两个相邻且相同的字母,并删除它们。在完成所有重复项删除操作后返回最终的字符串。在 S 上反复执行重复项删除操作,直到无法继续删除。

2024-06-25 17:14:44 192

原创 系统cuda版本与虚拟环境版本cuda不一致

因为我系统的cuda版本为12.0。虚拟环境中的cuda为11.3,理论上应该互不影响,但却报错。经过问题的查找,发现为Anconda3的系统变量设置的有问题,它会直接指向系统的cuda版本。如下图,是原来的环境变量设置,它没有指向anconda的路径,而是指向了系统cuda。在进行环境搭建后,编译虚拟环境中的文件。我用的是Anconda3创建的虚拟环境,在安装完cuda版本11.3,pytorch1.12.1后,编译文件,报错。下面是更改后的环境变量。更改后,编译就可以通过了。

2024-06-25 14:59:20 1572 2

原创 LeetCode20有效的括号

给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效。

2024-06-24 18:32:08 632

原创 LeetCode225用队列实现栈

【代码】LeetCode225用队列实现栈。

2024-06-24 17:05:27 628

原创 LeetCode232用栈实现队列

push(x) -- 将一个元素放入队列的尾部。peek() -- 返回队列首部的元素。empty() -- 返回队列是否为空。pop() -- 从队列首部移除元素。

2024-06-24 15:37:20 282

原创 LeetCode151翻转字符串里的单词

解释: 输入字符串可以在前面或者后面包含多余的空格,但是反转后的字符不能包括。解释: 如果两个单词间有多余的空格,将反转后单词间的空格减少到只含一个。给定一个字符串,逐个翻转字符串中的每个单词。输入: " hello world!输入: "a good example"输入: "the sky is blue"输出: "blue is sky the"输出: "example good a"输出: "world!

2024-06-21 20:43:47 198

原创 LeetCode541反转字符串

给定一个字符串 s 和一个整数 k,从字符串开头算起, 每计数至 2k 个字符,就反转这 2k 个字符中的前 k 个字符。在遍历字符串的过程中,让 i += (2 * k),i 每次移动 2 * k 就可以了,然后判断是否需要有反转的区间。如果剩余字符小于 2k 但大于或等于 k 个,则反转前 k 个字符,其余字符保持原样。如果剩余字符少于 k 个,则将剩余字符全部反转。输入: s = "abcdefg", k = 2。输出: "bacdfeg"

2024-06-21 20:05:13 216

原创 LeetCode344反转字符串

不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 char[] 的形式给出。你可以假设数组中的所有字符都是 ASCII 码表中的可打印字符。输入:["H","a","n","n","a","h"]输出:["h","a","n","n","a","H"]输入:["h","e","l","l","o"]输出:["o","l","l","e","h"]

2024-06-21 16:35:50 116

原创 LeetCode18四数之和

四数之和的双指针解法是两层for循环nums[k] + nums[i]为确定值,依然是循环内有left和right下标作为双指针,找出nums[k] + nums[i] + nums[left] + nums[right] == target的情况,三数之和的时间复杂度是O(n^2),四数之和的时间复杂度是O(n^3)。满足要求的四元组集合为: [ [-1, 0, 0, 1], [-2, -1, 1, 2], [-2, 0, 0, 2] ]就返回了,三数之和 可以通过。答案中不可以包含重复的四元组。

2024-06-20 15:17:29 152

原创 LeetCode15三数之和

这个题难在去重,要想清楚怎么去重,a,b,c都要去重。a要与a的前一个循环数比较,也就是i-1。如果i-1时的a之前没有出现,可以继续,出现过,则表示这个a已经用过了。给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 请你找出所有满足条件且不重复的三元组。满足要求的三元组集合为: [ [-1, 0, 1], [-1, -1, 2] ]给定数组 nums = [-1, 0, 1, 2, -1, -4],答案中不可以包含重复的三元组。

2024-06-20 12:11:56 152

原创 LeetCode383 赎金信

给定一个赎金信 (ransom) 字符串和一个杂志(magazine)字符串,判断第一个字符串 ransom 能不能由第二个字符串 magazines 里面的字符构成。否则返回 false。这道题目和(242有效的字母异位词)很像,相当于求 字符串a 和 字符串b 是否可以相互组成 ,而这道题目是求 字符串a能否组成字符串b,而不用管字符串b 能不能组成字符串a。(题目说明:为了不暴露赎金信字迹,要从杂志上搜索各个需要的字母,组成单词来表达意思。杂志字符串中的每个字符只能在赎金信字符串中使用一次。

2024-06-20 10:32:22 209

原创 LeetCode454四数相加II

为了使问题简单化,所有的 A, B, C, D 具有相同的长度 N,且 0 ≤ N ≤ 500。所有整数的范围在 -2^28 到 2^28 - 1 之间,最终结果不会超过 2^31 - 1。给定四个包含整数的数组列表 A , B , C , D ,计算有多少个元组 (i, j, k, l) ,使得 A[i] + B[j] + C[k] + D[l] = 0。

2024-06-20 09:45:00 176

原创 LeetCode01两数之和

给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。给定 nums = [2, 7, 11, 15], target = 9。因为 nums[0] + nums[1] = 2 + 7 = 9。所以返回 [0, 1]

2024-06-19 18:32:56 182

原创 LeetCode202快乐数

快乐数」定义为:对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和,然后重复这个过程直到这个数变为 1,也可能是 无限循环 但始终变不到 1。如果 可以变为 1,那么这个数就是快乐数。如果 n 是快乐数就返回 True;不是,则返回 False。编写一个算法来判断一个数 n 是不是快乐数。

2024-06-19 11:25:54 204

原创 LeetCode349两个数组的交集

这里我用的是List,因为最后我们得到是List,但官方是数组,所以在定义时应该为。输出结果中的每个元素一定是唯一的。我们可以不考虑输出结果的顺序。这里我们返回的是数组,最后要将数组转化为List,可以用如下代码。这里定义了一个新的空数组,来存放我们得到的结果resultSet。题意:给定两个数组,编写一个函数来计算它们的交集。

2024-06-19 09:37:23 229

原创 LeetCode142环形链表II

题意: 给定一个链表,返回链表开始入环的第一个节点。如果链表无环,则返回 null。为了表示给定链表中的环,使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。如果 pos 是 -1,则在该链表中没有环。:不允许修改给定的链表。

2024-06-17 14:51:36 361

原创 LeetCode242.有效的字母异位词

示例 1: 输入: s = "anagram", t = "nagaram" 输出: true。给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。示例 2: 输入: s = "rat", t = "car" 输出: false。你可以假设字符串只包含小写字母。

2024-06-17 14:47:22 552

原创 LeetCode19删除链表后面第N个元素

给你一个链表,删除链表的倒数第。个结点,并且返回链表的头结点。

2024-06-15 15:49:46 201

原创 LeetCode203移除链表元素

删除链表中等于给定值 val 的所有节点。

2024-06-05 11:39:58 225 2

原创 LeetCode59螺旋矩阵 ||

LeetCode中螺旋矩阵问题

2024-06-05 11:20:47 208

空空如也

空空如也

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

TA关注的人

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