自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(45)
  • 资源 (1)
  • 收藏
  • 关注

原创 如何利用OpenAI的函数调用特性

在本文中,我们深入探索了OpenAI的函数调用特性,并解析了其在实现结构化数据生成中的巨大价值。虽然我们通常认为生成模型产生的数据是无结构的,但在文章中证明,借助函数调用特性,我们完全有可能创建出结构化的数据。通过编程示例,我们详细解释了函数调用的工作原理,包括如何向GPT接口提交带有问题和函数调用的请求,如何利用模型提取出的信息去请求第三方接口获取实时数据,以及如何生成一个全新的总结。接着,我们展示了如何借助函数调用特性实现机器翻译功能,并结构化输出翻译的信息。

2023-07-26 20:34:04 335

原创 【深度探讨】字符串转字节切片:内存拷贝,真的存在吗?

在进行转换过程中,虽然Go语言会创建一个全新的字节切片,但这个切片在底层实际上是直接引用原字符串的数据。但是,我们也需要警觉:虽然转换过程中没有内存拷贝,但一旦你更改了字节切片的内容,就有可能会修改原始数据,进而影响到原字符串。这一点就像是Go语言设计原则的一个微妙之处,旨在在保证效率的同时,也提高数据的安全性。总的来说,**Go语言在字符串转换为字节切片时,并不会发生内存拷贝,这是因为Go语言的设计优雅且高效。**在日常操作中,我们需要注意,不能轻易修改转换后的字节切片,以免对原字符串造成不必要的影响。

2023-07-06 21:17:04 232

转载 在Go中优雅地处理错误(转载)

自定义错误是我们通过手动实现错误接口而创建的一种类型。一个例子是。​在Go 1.13之前,用户不得不使用类型断言来检查错误类型,但随着新的错误包的改造,现在我们有了 errors.As 函数来检查错误类型。ok {// ...// ...与哨兵错误相比,自定义错误类型的主要好处是,我们可以使用任何可能帮助用户发现问题的动态信息。即便如此,代价是我们需要为我们想要实现的每个错误类型定义一个自定义结构。根据我们定义的错误数量,这可能会很快增加相当大的开销。

2023-01-24 09:26:47 188

原创 如何用golang快速构建一个CLI小工具02 - 解析文件

在上一篇文章中,我们构建了一个叫的子命令用来随机选择我们输入的字符数组。在这篇中,我们来给我们的这个子命令加点功能 – 解析文件!我们希望通过文件的方式来作为输入,然后随机选出文件的内容。

2022-10-14 17:31:55 332

原创 如何用Golang快速构建一个CLI小工具

在现实开发的过程中,大家会发现很多开源的框架都会有着自己的一个CLI工具库来帮助开发者们通过命令行的方式快速的达到某些目的,比如常见的docker命令。那么在这篇文章当中,主要给大家介绍一个golang的小框架,我们可以借助这个框架来快速搭建一个小的CLI工具。

2022-10-13 21:14:59 647

原创 Leetcode27 -- 移除元素

看到数组的题目,习惯性的思考我们是否可以用双指针的思想来做。题目要求返回的是一个长度,这种情况大概率是可以通过指针的标记位置来返回结果的。那么我们应该要解决的问题就是如何使用这个指针,解决这个问题,我们题目的解答自然而然就出来了。请注意,输入数组是以「引用」方式传递的,这意味着在函数里修改输入数组对于调用者是可见的。不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。这题很明确,输出的的移除元素后的数组长度,并且这个数组是被原地修改。的元素,并返回移除后数组的新长度。

2022-09-11 14:31:25 77

原创 Electron -- 编写第一个Eletron程序

当你安装完electron后,你会发现你的项目目录下多了一个node_modules文件夹,里面有electron的相关文件。

2022-09-11 09:05:05 549 2

原创 Waline评论服务docker自部署手册 + 无需备案域名配置

写在前面,为啥要整个自己部署的waline (waline是啥就不细说了)呢。一句话:就是为了访问稍微快点!在中,最简单易用的是LeanCloud+Vercel部署的做法。不得不说,如果放在之前,这个部署方式觉得是简单易用的,傻瓜式部署。但是奈何,现在leancloud已经不适合大陆访问了,并且vercel也不是很稳定。也尝试过使用腾讯云的Cloudbase和阿里云的函数计算,都是踩了无数坑。前者node版本太低,直接报错,后者需要域名备案,直接达咩放弃。所以,最后还是选择了docker。

2022-09-03 15:42:49 1424

原创 JAVA设计模式 --中介模式

中介模式中介者模式(Mediator Pattern)是用来降低多个对象和类之间的通信复杂性。这种模式提供了一个中介类,该类通常处理不同类之间的通信,并支持松耦合,使代码易于维护。中介者模式属于行为型模式。场景1:你使用QQ聊天时,你能够在群聊天窗口看到其他人发的消息,这种情况下,群聊天室就相当于一个中介,将所有的用户连接了起来具体实现如下:先定义一个ChatRoom的中介类import java.util.Date; public class ChatRoom { public sta

2021-03-22 08:50:53 89

原创 JAVA设计模式 -- 策略模式

策略模式策略模式定义了算法家族,分别封装起来,让他们之间可以互相替换,此模式让算法的变化,不会影响到使用算法的客户。场景1:HR通知一个面试人员进行面试,通知的方法有两种,短信通知和邮件通知,要设计一个面试人员的类,怎么设计通知这部分的功能,使得HR能够任意选择一种方法通知。场景2:自己实现一个排序的类,使得输入任意一种类型的数据都可以排序,不仅可以对原始类型进行排序,也可以对自己定义的类进行排序。场景3:在结账时,客户支付功能,客户可能选择xx宝,x信,信用卡等来支付以上几种场景的共性都是,要实

2021-03-04 17:16:15 143 2

原创 Effective Java -- 01

Effective Java – 01第一条 用静态工厂方法代替构造方法所谓的静态工厂方法有别于设计模式中的工厂模式类会提供一个公有的静态工厂方法,它只是返回类的实例的静态方法。传统的的获取类实例的方法是使用构造器来获得,如: Date date = new Date();而静态工厂方法则是通过类来调用,如: Calendar calendar = Calendar.getInstance();相比传统的构造方法,静态工厂方法有一下优点:它们有名字: 拥有名字的静态工厂方

2021-03-04 10:40:25 109 1

原创 JAVA设计模式-- 单例模式

单例模式单例模式:保证一个类仅有一个实例,并提供一个访问它的全局访问点。对于只需要一个实例的比如Manager、Factory这种,适合使用单例模式。单例模式严格的控制了用户怎样访问它何时访问它,对该类进行了受控访问。单例的实现方法:step1: 将构造方法变成私有的step2: 实现一个静态的getInstance()方法,用来返回 INSTANCE最常见,且最简单的实现方法就是饿汉式的方法/** * 类加载到内存后,实例化一个单例,JVM保证线程安全 * * 优点:实现简单

2021-03-03 15:53:24 140 2

原创 SQL笔记02 计算字段,分组排序

SQL笔记02 计算字段,分组排序创建计算字段当我们需要照直接数据库中检索出转换、计算或格式化过的数据,而不是检索出数据,然后再在客户端应用程序中重新格式化,这个时候就需要用到计算字段。拼接字段在一些DBMS中,可以使用+或者||拼接两个列,而在MYSQL中,必须使用特定的函数。SELECT vend_name || ' (' || vend_country || ')'FROM VendorsORDER BY vend_name; -- 输出:-- Bear Emporiu

2020-12-09 20:41:05 199

原创 SQL笔记01 Mysql 检索数据

SQL笔记01 Mysql 检索数据检索数据检索单个列select col_namefrom table_name检索多列数据select col_name1,col_name2,col_name3from table_name检索所有列select * from table_name一般情况下最好不要使用*通配符,因为效率会很低下,但是如果在不确定列名时,可以使用其找到未知列。检索不同的值select distinct col_name from tabl

2020-12-09 20:39:48 83

原创 SQL刷题01 查询第二名薪水

SQL刷题01获取当前(to_date=‘9999-01-01’)薪水第二多的员工的emp_no以及其对应的薪水salaryCREATE TABLE `salaries` (`emp_no` int(11) NOT NULL,`salary` int(11) NOT NULL,`from_date` date NOT NULL,`to_date` date NOT NULL,PRIMARY KEY (`emp_no`,`from_date`));输出样例:emp_nosalar

2020-11-30 17:14:25 181

原创 Leetcode78 子集思路分析

Leetcode78 子集给定一组不含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集)。**说明:**解集不能包含重复的子集。示例:输入: nums = [1,2,3]输出:[ [3],  [1],  [2],  [1,2,3],  [1,3],  [2,3],  [1,2],  []]思考过程:题目很简短,列出所有可能的子集。当看到让列出所有可能时,第一反应是回溯算法,使用递归将可能性

2020-11-26 17:04:57 93

原创 leetcode--上升下降字符串

Leetcode1370 上升下降字符串给你一个字符串 s ,请你根据下面的算法重新构造字符串:从 s 中选出 最小 的字符,将它 接在 结果字符串的后面。从 s 剩余字符中选出 最小 的字符,且该字符比上一个添加的字符大,将它 接在 结果字符串后面。重复步骤 2 ,直到你没法从 s 中选择字符。从 s 中选出 最大 的字符,将它 接在 结果字符串的后面。从 s 剩余字符中选出 最大 的字符,且该字符比上一个添加的字符小,将它 接在 结果字符串后面。重复步骤 5 ,直到你没法从 s 中选择字符

2020-11-25 15:38:59 110

原创 This environment variable is needed to run this program NB: JAVA_HOME should point to a JDK not a JR

Maven 安装报错这个报错是因为JAVA_HOME的环境变量配置出错。之前在Windows遇到过,在windows上是因为在安装jdk时,一直无脑点击下一步,导致jre将jdk覆盖了,在安装时分别存储就ok,这次是在Linxu上遇到了这个问题(当前的Linux是Centos的一个服务器。)经过一番思考,应该是因为是用的是openjdk的原因。于是选择重新配置java的环境变量。第一步,将系统已安装的java清理掉,以免带来不必要的麻烦使用rpm -qa | grep java # 查看已有ja

2020-11-23 22:10:04 7966 1

原创 Mybatis学习笔记01-org.apache.ibatis.exceptions.PersistenceException:

Mybatis学习笔记01org.apache.ibatis.exceptions.PersistenceException: ### Error building SqlSession.### The error may exist in SQL Mapper Configuration### Cause: org.apache.ibatis.builder.BuilderException: Error parsing SQL Mapper Configuration. Cause: java.

2020-11-23 11:10:52 101

原创 Leetcode刷题19--地图分析

Leetcode刷题19–地图分析你现在手里有一份大小为 N x N 的 网格 grid,上面的每个 单元格 都用 0 和 1 标记好了。其中 0 代表海洋,1 代表陆地,请你找出一个海洋单元格,这个海洋单元格到离它最近的陆地单元格的距离是最大的。我们这里说的距离是「曼哈顿距离」( Manhattan Distance):(x0, y0) 和 (x1, y1) 这两个单元格之间的距离是 |x0 - x1| + |y0 - y1| 。如果网格上只有陆地或者海洋,请返回 -1。示例 1:11

2020-09-04 15:52:49 442

原创 Leetcode刷题18-- 和为s的两个数

Leetcode刷题18-- 和为s的两个数输入一个递增排序的数组和一个数字s,在数组中查找两个数,使得它们的和正好是s。如果有多对数字的和等于s,则输出任意一对即可。示例 1:输入:nums = [2,7,11,15], target = 9输出:[2,7] 或者 [7,2]示例 2:输入:nums = [10,26,30,31,47,60], target = 40输出:[10,30] 或者 [30,10]解法 : 头尾双指针遍历class Solution: def tw

2020-08-01 15:27:02 126

原创 Leetcode刷题17--二叉树的镜像

Leetcode刷题17–二叉树的镜像请完成一个函数,输入一个二叉树,该函数输出它的镜像。例如输入: 4 / \ 2 7 / \ / \1 3 6 9镜像输出: 4 / \ 7 2 / \ / \9 6 3 1​示例 1:输入:root = [4,2,7,1,3,6,9]输出:[4,7,2,9,6,3,1]很简单,设计一个递归,将左右子树对换一定要同时赋值,否则会重复,或者使用一个temp中间变量cla

2020-08-01 15:26:22 126

原创 Leetcode刷题16 -- 环形链表II

Leetcode刷题16 – 环形链表II给定一个链表,返回链表开始入环的第一个节点。 如果链表无环,则返回 null。为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。说明:不允许修改给定的链表。示例 1:输入:head = [3,2,0,-4], pos = 1输出:tail connects to node index 1解释:链表中有一个环,其尾部连接到第二个节点。示例 2:输入:hea

2020-07-31 17:08:12 118

原创 Leetcode刷题15 -- 环形链表

Leetcode刷题15 – 环形链表给定一个链表,判断链表中是否有环。为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。示例 1:输入:head = [3,2,0,-4], pos = 1输出:true解释:链表中有一个环,其尾部连接到第二个节点。示例 2:输入:head = [1,2], pos = 0输出:true解释:链表中有一个环,其尾部连接到第一个节点。示例 3:输入:hea

2020-07-31 16:42:21 87

原创 # GBDT家族总结 (1)

GBDT家族总结(1)GBDT (Gradient Boosting Decision Tree)GBDT 一个直观的idea就是使用树的形式来实现一个梯度逼近的过程,使得我们的函数损失最小。它是一个集成的模型,是n个CART线性相加的结果梯度提升算法:步骤二中,计算残差,简化形式就是rim=yi−fm−1(xi)m=1,2...M(M颗树)r_{im}=y_i-f_{m-1}(x_i) \quad m=1,2...M \quad(M颗树)rim​=yi​−fm−1​(xi​)m=1

2020-07-29 21:22:47 149

原创 Windows 安装子系统到非系统路径 + 环境配置

Windows 安装子系统到非系统路径 + 环境配置确保你打开了子系统功能,打开 powershell ,输入Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux创建一个文件夹用来下载系统 (此时我们的位置在D盘中)mkdir wslcd wsl下载系统Invoke-WebRequest -Uri https://aka.ms/wsl-ubuntu-1804 -Out

2020-07-28 13:56:13 331

原创 Leetcode刷题14 --- 判断能否形成等差数列

Leetcode刷题14 — 判断能否形成等差数列给你一个数字数组 arr 。如果一个数列中,任意相邻两项的差总等于同一个常数,那么这个数列就称为 等差数列 。如果可以重新排列数组形成等差数列,请返回 true ;否则,返回 false 。示例 1:输入:arr = [3,5,1]输出:true解释:对数组重新排序得到 [1,3,5] 或者 [5,3,1] ,任意相邻两项的差分别为 2 或 -2 ,可以形成等差数列。示例 2:输入:arr = [1,2,4]输出:false解释:无法

2020-07-15 21:30:21 173

原创 Leetcode刷题13 --二叉树的遍历

Leetcode刷题13 --二叉树的遍历给定一个二叉树,返回它的中序 遍历。示例:输入: [1,null,2,3] 1 \ 2 / 3输出: [1,3,2]解法1:借助辅助函数class Solution: def inorderTraversal(self, root: TreeNode) -> List[int]: res = [] if root is None: return

2020-07-15 16:37:31 84

原创 Leetcode刷题12:回文数

Leetcode刷题12:回文数判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。示例 1:输入: 121输出: true示例 2:输入: -121输出: false解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。示例 3:输入: 10输出: false解释: 从右向左读, 为 01 。因此它不是一个回文数。方法1: 各种类型转换,体现python内置函数的强大,但是运行时间和内存消耗会很严重,

2020-07-11 16:29:18 103

原创 Leetcode刷题11:寻找数组的中心索引

Leetcode刷题11:寻找数组的中心索引给定一个整数类型的数组 nums,请编写一个能够返回数组 “中心索引” 的方法。我们是这样定义数组 中心索引 的:数组中心索引的左侧所有元素相加的和等于右侧所有元素相加的和。如果数组不存在中心索引,那么我们应该返回 -1。如果数组有多个中心索引,那么我们应该返回最靠近左边的那一个。示例 1:输入:nums = [1, 7, 3, 6, 5, 6]输出:3解释:索引 3 (nums[3] = 6) 的左侧数之和 (1 + 7 + 3 = 11),与

2020-06-28 17:08:22 172

原创 Leetcode刷题10 -- 从尾到头打印链表

Leetcode刷题10 – 从尾到头打印链表输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)。示例 1:输入:head = [1,3,2]输出:[2,3,1]解法1: 暴力遍历+列表倒置class Solution: def reversePrint(self, head: ListNode) -> List[int]: if head is None: return [] res = []

2020-06-16 14:03:28 164

原创 Leetcode刷题09--二维数组中的查找

Leetcode刷题09–二维数组中的查找在一个 n * m 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。示例:现有矩阵 matrix 如下:[ [1, 4, 7, 11, 15], [2, 5, 8, 12, 19], [3, 6, 9, 16, 22], [10, 13, 14, 17, 24], [18, 21, 23, 26, 30]

2020-06-10 16:14:48 134

原创 Leetcode刷题08 -- 有效的完全平方数

Leetcode刷题08 – 有效的完全平方数给定一个正整数 num,编写一个函数,如果 num 是一个完全平方数,则返回 True,否则返回 False。说明:不要使用任何内置的库函数,如 sqrt。示例 1:输入:16输出:True示例 2:输入:14输出:False看到这个题目的,第一反应是用二分法,为什么是二分法呢? 因为平方数的这个特殊的属性,是同一个数的相乘,那么用二分来逼近就很符合这个场景。解法1: 二分法:def isPerfectSquare(self, num

2020-06-05 15:59:52 132

原创 Leetcode刷题07 - 二叉树的层序遍历

Leetcode刷题07 - 二叉树的层序遍历给你一个二叉树,请你返回其按 层序遍历 得到的节点值。 (即逐层地,从左到右访问所有节点)。示例:二叉树:[3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回其层次遍历结果:[ [3], [9,20], [15,7]]我的解法:def levelOrder(self, root: TreeNode) -> List[List[int]]:

2020-05-30 14:23:59 154 1

原创 Leetcode刷题06--二分查找

Leetcode刷题06–二分查找刷一道经典的算法,二分查找,虽然是经典算法但是有很多细节在写的时候也是要注意的,不经意间可能就会少加个1多加个1给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。示例 1:输入: nums = [-1,0,3,5,9,12], target = 9输出: 4解释: 9 出现在 nums 中并且下标为 4示例 2:输入: nums = [

2020-05-30 13:59:41 156

原创 机器学习,深度学习,自然语言处理专项练习记录-01

机器学习,深度学习,自然语言处理专项练习记录-01构建一个神经网络,将前一层的输出和它自身作为输入。下列哪一种架构有反馈连接?A. 循环神经网络B. 卷积神经网络C. 受限玻尔兹曼机D. 都不是答案:A解析:RNN的结构定义就是具有反馈层的,这样才成功实现了记忆功能。 CNN并不具备反馈,它本质是一种前馈的网络,而受限波尔兹曼机,它的结构和全连接网络一样,只不过内部计算的方式不同。深度学习是当前很热门的机器学习算法,在深度学习中,涉及到大量的矩阵相乘,现在需要计算三个稠密矩阵A,B

2020-05-26 16:55:57 999

原创 Leetcode刷题05---礼物的最大价值

Leetcode刷题05—礼物的最大价值本题来自剑指offer的47题在一个 m*n 的棋盘的每一格都放有一个礼物,每个礼物都有一定的价值(价值大于 0)。你可以从棋盘的左上角开始拿格子里的礼物,并每次向右或者向下移动一格、直到到达棋盘的右下角。给定一个棋盘及其上面的礼物的价值,请计算你最多能拿到多少价值的礼物?示例 1:输入: [ [1,3,1], [1,5,1], [4,2,1]]输出: 12解释: 路径 1→3→5→2→1 可以拿到最多价值的礼物分析一下解题思路,这个题

2020-05-26 15:43:32 276

原创 Flask学习笔记01-Python高级编程基础

在开始记录Flask具体内容前,整理一波Python中的一些高级函数的使用。Lambda表达式Lambda表达式其实就是匿名函数,这种用法在Python和Java中都存在,不过个人感觉还是Python的更加的干练。其格式为 lambda 参数列表: 函数体举了栗子,定义一个简单的加法函数def add(x,y): return x+yprint(add(3,5)) #输出8换做我们的lambda表达式就是:add = lamda x,y : x+y add(3,5) #同样可以

2020-05-26 10:30:13 136

原创 Leetcode刷题04-股票的最大利润

Leetcode刷题04-股票的最大利润假设把某股票的价格按照时间先后顺序存储在数组中,请问买卖该股票一次可能获得的最大利润是多少?示例 1:输入: [7,1,5,3,6,4]输出: 5解释: 在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5 。 注意利润不能是 7-1 = 6, 因为卖出价格需要大于买入价格。示例 2:输入: [7,6,4,3,1]输出: 0解释: 在这种情况下, 没有交易完成, 所以最大利润为 0。

2020-05-25 15:55:27 371

原创 Neural Summarization by Extracting Sentences and Words

Neural Summarization by Extracting Sentences and Words (2016)原文地址:https://arxiv.org/pdf/1603.07252.pdf抽取式自动摘要系列第一篇,选择了一些我觉得挺有用的文献放在了下面,直接查找阅读Abstract:提出了一种基于神经网络和连续句子特征的数据驱动方法, 可以从大量的文档中提出句子和单词,在没有任何语言注释的情况下依然取得的不错的成绩。Introduction之前的摘要技术大多是人类设计的特征来识别

2020-05-25 14:23:16 755

第二章:理解面向对象.xmind

自己整理的理解java面向对象的思维导图

2021-04-13

空空如也

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

TA关注的人

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