- 博客(109)
- 资源 (7)
- 收藏
- 关注
原创 算法套路十二——回溯法之排列型回溯
相比子集型回溯,排序型回溯的区别就是在选择相同子集时不会判断为重复,而是不同的排列,因此我们从答案的角度出发,考虑每次选哪一个数,且由于选择顺序不同排列也不同,故在递归时不用考虑要使后选的元素大于当前选的元素,那我们如何判断是否选择,可以使用on_path数组,来记录数组第i个元素是否被选择,且要在递归完成后回溯。你可以 按任意顺序 返回答案。n 皇后问题 研究的是如何将 n 个皇后放置在 n×n 的棋盘上,并且使皇后彼此之间不能相互攻击。给你一个整数 n ,返回所有不同的 n 皇后问题 的解决方案。
2023-04-22 20:00:21
739
原创 算法套路十一 ——回溯法之组合型回溯
剪枝:对于本题,为考虑方便,我们可以从n开始进行选择,设path长为m,那么还需要选d=k - m个数设当前需要从[1,i]这i个数中选数,如果i
2023-04-21 22:51:46
876
原创 云原生入门
云原生是一种设计和构建应用程序的方法,它充分利用了云计算的优势,如弹性、可扩展性、自动化和敏捷性。云原生应用程序不仅可以在云中运行,而且是为云而生的,它们采用了一些新式的技术和架构模式,使得应用程序可以快速响应市场变化,提高用户体验和业务价值。在本文中,我们将介绍云原生的概念、特点、技术和应用场景,以及云原生的挑战和趋势。
2023-04-19 18:13:35
1035
原创 算法套路十——回溯法之子集型回溯
采用回溯法,用path记录当前数字选择的情况,ans记录答案。当前问题:数组前i-1个元素是否选择固定,枚举数组从第i个元素开始的所有元素是否选择当前操作:i是否为n,若是则将当前path加入ans中。若不是则需要枚举子集选择第i位元素或不选第i位元素,若不选第i位元素,则直接递归子问题;若选择第i位元素,则需要先将当前元素加入path中,并递归子问题,在递归完成后,进行回溯,将第i位元素从path中删除子问题:数组前i-1个元素是否选择固定,枚举数组从第i+1个元素开始的所有元素是否选择。
2023-04-18 19:10:58
1049
原创 Hyperledger Fabric项目搭建区块链浏览器Hyperledger-blockchain-explorer
若项目是组织内出现两个peer结点的网络,如果想要配置这种网络的配置文件,只需要将org1-network.json内所有出现peer0的位置同步加上peer1即可,多个peer结点同理多加几个peer即可,如下所示。可以直接在虚拟机内浏览器输入localhost:8080访问区块链浏览器,也可在宿主机输入虚拟机(服务器)ip:8080(需要开放端口)访问。首先要找到fabric使用网络的名字,运行区块链项目,之后输入docker network ls找出区块链网络。此时目录结构如下图所示。
2023-04-16 16:54:32
3697
2
原创 go语言切片做函数参数传递+append()函数扩容
进行append后,1. 切片没有进行扩容,那么会直接添加或修改切片指向底层数组中后一位的值,故底层数组会受到改变;2. 而如果进行扩容,则会导致切片指向一个新的底层数组,对原来的数组是没有影响的
2023-04-13 19:55:29
1402
原创 自训练Self-Training学习总结
Self-training是最简单的半监督方法之一,其主要思想是找到一种方法,用未标记的数据集来扩充已标记的数据集。即首先用有标签数据训练一个分类器,然后用这个分类器对无标签数据进行分类,这样就会产生伪标签(pseudo label)或软标签(soft label),挑选一定标准的伪标签样本用来迭代训练分类器。使用场景:在现实生活中得到大量有标签数据需要大量时间经历,而自训练是有标签数据+无标签数据混合成的训练数据中使用的深度学习算法,可以利用自训练方法对无标记数据进行标记,实现己标记数据的扩充。
2023-04-13 16:25:27
7314
原创 算法套路八——二叉树深度优先遍历(前、中、后序遍历)
前序遍历在某些数据下不需要递归到边界(base case)就能返回,而另外两种需要递归到至少一个边界,从这个角度上来说它是最快的。中序遍历很好地利用到了二叉搜索树的性质,使用到的变量最少。后序遍历的思想是最通用的,即自底向上计算子问题的过程。想要学好动态规划的话,请务必掌握这个思想。且由以上示例代码都可以看出,在代码书写时要定义内部匿名函数dfs,不然可能会由于LeetCode判断问题影响结果。
2023-04-12 16:23:11
1652
原创 算法套路七——二叉树递归
该题与上题一样,递归思想基本一样,也是使用全局变量进行解决,不过该题在代码书写上值得注意,在go语言中只有值传递,当slice做为参数传递给函数的时候,新建了切片s,只是原始切片slice和参数s切片的底层数组是一样的,与Java不同,在Java中需要使用Lsit进行修改,且在函数结束前需要删除List的最后一个元素。给定一个二叉树的 根节点 root,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。
2023-04-06 19:55:58
1550
原创 算法套路五——快慢指针
给你单链表的头结点 head ,请你找出并返回链表的中间结点。如果有两个中间结点,则返回第二个中间结点。可以设置快慢指针,快指针每次移动两步,慢指针每次移动一步,进过数学推导,可以得出无论数组长度时奇数还是偶数,都可以保证快指针移动到末尾时慢指针移动到数组中间结点,不过要注意的是考虑到由于fast每次走两步,所以循环判断条件为。
2023-03-30 15:02:25
404
1
原创 算法套路六——删除链表元素
给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val == val 的节点,并返回 新的头节点。本题与本专栏算法套路四中的算法示例二:LeetCode92. 反转链表 II一样,可能删除头结点也可能不删除头结点,遇到这种情况需要定义dummy哨兵节点,如不理解可前往[算法套路四]中的算法示例二阅读直接定义cur = dummy,对cur进行遍历,若cur.next.val等于val则使cur.next = cur.next.next。
2023-03-28 20:03:49
648
原创 算法套路四——反转链表
`初始化pre为空,cur为头指针`pre指针:记录当前结点的前一个结点cur指针:记录当前结点,cur的next指针指向prenxt指针:记录当前结点的后一个结点,记录cur的next,防止断链循环中左边按照`ncpc`的顺序反转,右边按照cpcn的顺序,且左右两边第一个c都为cur.next
2023-03-22 19:51:25
624
原创 算法套路三:二分查找——红蓝染色法
left指针掌管左边蓝色区域,蓝色表示 truej即所求值及其右侧,right指针掌管右边红色区域,红色表示false即所求值左侧,两者互不冲突,通过不断向目标区域靠近,扩大两个指针的掌管区域,直到两者掌管的区域接壤使用闭区间时,L-1必定是红色即false,R+1必定是蓝色即true,这就是循环不变量关键不在于区间里的元素具有什么性质,而是区间外面的元素具有什么性质,即将区间外染成红色与蓝色。根据以上两点,在做题时关键即确定二分条件函数isBlue()
2023-03-14 20:22:55
1884
2
原创 基于Hyperledger Fabric的学位学历认证管理系统
基于区块链的学历学位认证系统是一个利用区块链技术来防止学历造假的项目。增加学历:用户可以通过智能合约向区块链系统中添加自己的学历信息。修改学历:用户可以通过智能合约修改自己在区块链系统中的学历信息,但是修改后的信息会留下痕迹,方 便追溯。查询学历:用户可以通过智能合约查询自己或者其他用户在区块链系统中的学历信息,验证其真伪。使用了Fabric与Couchdb数据库,实现了分布式数据库与不可篡改性。
2023-03-09 17:07:07
4656
10
原创 算法套路二:相向双指针
相向双指针故套路如下: 比较 s = numbers[left] + numbers[right]与**固定值target**(关键为找到该固定值) 如果s > target,right-- 如果s < target,left++
2023-03-06 19:28:28
674
原创 算法套路一:同向双指针
数组要具有单调性,即right或left右移只会导致数组单调增加或减少若满足单调,则首先对right进行 for range枚举,并循环判断是否移动left,直到比较子数组与target满足条件,并取max或mintarget可以变化,比如子数组和、积、长度、元素出现次数等等求最小值时,右指针移动会导致满足条件,故要通过左指针移动找出当前满足条件的右指针的最值,在左指针循环内先求最值min,不满足条件时退出当前左指针循环,继续遍历右指针。
2023-02-22 20:25:07
925
原创 基于C++的考试系统
本次实验我对于系统的功能性需求已基本全部实现,如选择判断自动判分,且分数与简答编程答案计入txt文件供后续老师判分。但由于我此前的学习没有深入C++以及QT可视化等方面的知识,对于非功能性需求没有特别突出的地方,如可视化方面、数据持久化方面没有亮点,但也尽量用到了自己学习过的知识,如在设计时进行类图设计,并考虑到了设计模式如模板方法的使用,并在代码注释方面也应有尽有。此外对于编程题也有改进的空间,虽然本系统中可以进行换行,但会消耗考生做题的时间。
2023-02-16 17:43:40
953
原创 C++设计模式实践——线上购物系统
本次实践作业我使用了一些比较常见的设计模式,包括状态模式,单例模式,建造者模式,观察者模式,策略模式,备忘录模式。我个人认为在设计模式的使用有两个亮点。第一个亮点就是策略模式与观察者模式与状态模式联合使用,而不是将策略模式进行单一的使用。这个想法是我在进行观察者模式设计时,发现观察者模式的通知功能可以有不同的策略实现后做出的模式设计。
2023-01-17 22:21:18
3036
1
原创 Nginx高并发实现原理学习
本文介绍了高并发的各种概念以及指标,接着说明了Nginx实现高并发的一些原理,并且对比apache服务器,就Nginx在实现高并发方面的诸多优点进行了分析说明。
2023-01-16 23:08:00
3113
原创 dp解最长回文子串
对于一个子串而言,如果它是回文串,并且长度大于 22,那么将它首尾的两个字母去除之后,它仍然是个回文串。例如对于字符串“ababa”,如果我们已经知道 “bab” 是回文串,那么 “ababa” 一定是回文串,这是因为它的首尾两个字母都是“a”。根据这样的思路,我们就可以用动态规划的方法解决本题。
2023-01-16 22:57:53
237
原创 使用nvm管理node版本,实现高版本与低版本node之间的转换
安装完成后可以首先输入npm use+版本号(使用此命令行可以根据你自己的需要随意切换node.js版本运行),之后可分别输入命令行node -v和npm -v,检验node.js以及对应npm是否安装成功,如果可以显示版本号这说明安装成功。3.为了彻底删除之前安装的node.js,鼠标点击电脑左面最左下角的win窗口图标弹出,输入“控制面板”再点击回车键进入,进入控制面板后,找到所安装的node.js并卸载。2.nvm安装完成后,检验是否安装成功,进入命令控制行窗口(进入方法见前面),
2023-01-10 11:38:11
582
原创 LeetCode461. 汉明距离,x与y异或,之后用f(x)=x & (x−1))次数与Integer.bitCount求二进制1的个数
两个整数之间的 汉明距离 指的是这两个数字对应二进制位不同的位置的数目。给你两个整数 x 和 y,计算并返回它们之间的汉明距离。
2023-01-09 11:10:55
378
原创 C++重载实现m*n*k三维矩阵,且矩阵元素为复数
1. 设计实现三维(3D)矩阵A[i] [j] [k],支持矩阵运算符+,[],=等运算符重载,并完成结果展示 2. 矩阵中元素为复数类型
2023-01-06 17:05:55
590
原创 SSM项目上传云服务器
1.购买服务器阿里云新人免费领取网站腾讯云新人免费领取网站领取后在控制台进行操作,可以发现公网ip地址与重置密码,之后记住修改服务器安全组规则,打开8080端口2.连接服务器开始菜单输入mstsc打开远程桌面连接输入ip地址,用户名Administrator与密码连接。**3.配置相应环境首先一定要配置好jdk,Tomcat,MySQL,可以自己去官网下载,全部安装后点开控制面板,在系统高级设置中配置环境变量变量名变量值JAVA_HOMEjdk安装的路径CL
2022-04-14 17:46:30
1790
原创 数组模拟实现一个50个字符串的堆栈,使用堆栈,将中缀算术表达式转换成后缀表达式。
1、用数组模拟实现一个50个字符串的堆栈,并使这个堆栈有如下方法和参数:myStack:数组名,使用时不能直接对这个数组进行存取操作,存取操作都通过pop()和push()完成。实现pop(): 弹出实现push():压入实现isFull():是否已满实现isEmpty():是否为空实现length():已有多少元素public class StackImiate { public int maxSize; public char[] a; public int top; S
2021-06-23 16:55:11
200
原创 用Java I0 api将SomeData.txt其中的所有数据读出,计算出每一行的后4列数据的平均值,存放到新文件AvgSomeData.txt文件中
查看文本文件SomeData.txt中的数据并分析其格式,用Java I0 api将其中的所有数据读出,计算出每一行的后4列数据的平均值,存放到新文件AvgSomeData.txt文件中,存放时每一行前面要加上行号(行号占3位,右对齐),平均值放到行末并左对齐。import java.util.*;import java.io.*;public class FIleStream { public static void main(String[] args) { FileReader in
2021-06-23 16:50:05
200
原创 泛型集合类中的链表类随机产生100个有序整数(单词)的链表
选择泛型集合类中的链表类用此类:a、随机产生100个整数(范围自定)的链表,在生成的过程中从小到大排列,然后输出;b、随机产生100个6个英文字母的单词的链表,在生成的过程中从小到大排列,然后用链表方式输出。import java.util.*;import java.util.LinkedList;import java.util.Random;public class CollectionsSort_IntAndStr { public static void main(String[]
2021-06-23 16:49:07
217
中国信通院:人工智能研发运营体系 (MLOps)实践指南
2023-09-06
Fabric-explorer部署的json附件
2023-06-30
华科软件考研复试真题.zip
2023-01-06
SSM项目部署服务器全套资源
2022-04-14
Android 数据库编程SQLite实现学生信息管理应用
2021-06-09
基于Java的愤怒的小鸟游戏的设计与实现.zip.zip
2021-06-08
基于ssm的在线问答系统
2021-06-08
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅