自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Kubebuilder实现mysql-operator

kubebuilder实现mysql-operator

2022-09-07 19:11:45 1000 1

原创 goalng中md5算法的4种写法及其性能比较以及源码简单分析

md5算法全称Message Digest Algorithm 5,中文名消息摘要算法第五版,主要用于文件或数据的完整性校验。我们在日常的研发中通常会见到32位的字符串。md5算法具有以下特点:在golang中,我们可以通过crypto/md5 来直接调用md5算法。常见的调用方式有以下四种:我们通过基准测试(benchmark)来比较四种写法的性能。我们可以看出方法4的性能最优,因此我们更推荐这种写法。我们有时候还需要面对下载大文件的情况,而此时我们可以考虑分块计算,从而降低时间消耗。4. cr

2022-08-08 20:50:53 1373

原创 NFT带给我们普通人的机遇是什么?

2021年3月11日晚,著名的日更艺术家Beeple,他的一幅画在佳士得拍卖会上拍出了6900万美元,约合人民币4.5亿元的高价。为什么说他是日更艺术家呢?因为此次拍卖会上,这幅4.5亿人民币的画,就是他从2007年5月1日到2021年1月7日,每天绘制一幅画,然后使用NFT技术组合到一起的,名字就叫做《EVERYDAYS:THE FIRST 5000 DAYS》。cryptoart.io官网上,Beeple本人给出的介绍是:I made a picture from start to finish

2021-12-26 22:49:58 12120 3

原创 Typora收费,付费笔记时代,强烈安利这一款免费好用的笔记软件

一觉睡醒,打开我的Typora,发现打开不了!!!当时我就破防了,Typora这么好用的软件,居然,居然要收费了。想起来我接触Typora还是在两年前了,之前一直用的是有道云笔记,但是用了Typora之后,实时渲染的Markdown笔记,对于缺乏想象力的我,实在是太有用了。我再也不用去输入源代码然后去想象输出后的结果,也不用在小小的屏幕上分屏去看预览效果。然而,这一切都要没了,14.99美刀的价格,让我和它say 拜拜了。(说实话,如果是14.99人民币,我就买了…)但是,我又发现了一个比

2021-12-14 21:32:32 3444

原创 人工智能实验代码整理

人工智能实验代码整理文章目录人工智能实验代码整理状态空间表示——猴子摘香蕉极大极小剪枝——五子棋状态空间表示——猴子摘香蕉# -*- coding: utf-8 -*-# State类,记录当前状态class State: def __init__(self, monkey=-1, box=0,banana=1, monbox=-1): self.monkey = monkey # -1:Monkey at A 0: Monkey at B 1:Monkey at

2021-11-08 21:03:48 1946 2

原创 操作系统实验报告

操作系统实验报告文章目录操作系统实验报告一、预备实验(1)熟悉操作系统开发环境实验目的实验内容实验感想(2)shell脚本实验目的实验内容实验感想二、进程实验(1)进程控制实验目的实验内容实验感想(2)进程间通信实验目的实验内容实验感想(3)进程间的管道通信实验实验目的实验内容实验感想(4)消息的发送与接收实验实验目的实验内容实验感想(5) 共享存储区通信实验目的实验内容实验感想(6)银行家算法实验目的实验内容实验感想(7)进程

2021-11-08 20:50:40 2905

原创 python小海龟turtle绘图作业代码

作业1:在屏幕中心建立一个宽为600,高为400的绘图窗口,在绘图窗口中从坐标(10,50)开始画一个边长为80的正方形,要求边为绿色,画笔宽度为4。import turtle as t# 在屏幕中心建立一个宽为600,高为400的绘图窗口,t.setup(600,400,200,200)# 在绘图窗口中从坐标(10,50)开始画一个边长为80的正方形,要求边为绿色,画笔宽度为4。t.color("green")t.pensize(4)t.speed(1)t.penup()t.got

2021-11-08 20:40:30 8312 1

原创 人工智能实验代码整理

人工智能实验代码整理文章目录人工智能实验代码整理状态空间表示——猴子摘香蕉极大极小剪枝——五子棋状态空间表示——猴子摘香蕉# -*- coding: utf-8 -*-# State类,记录当前状态class State: def __init__(self, monkey=-1, box=0,banana=1, monbox=-1): self.monkey = monkey # -1:Monkey at A 0: Monkey at B 1:Monkey at

2021-10-26 16:53:08 5552 2

原创 主成分分析 (Principal Component Analysis)

介绍(Introduction)¶在本次实验中,将实现主成分分析方法,并使用它获得人脸图像的低维表示。本次实验需要用到的数据集包括:ex4data1.mat -2D 仿真数据集ex4data2.mat -LFW人脸数据集评分标准如下:要点1:实现PCA算法-----------------(20分)要点2:降维仿真数据-----------------(20分)要点3:重构仿真数据-----------------(20分)要点4:降维人脸数据-----------------(20分)

2021-10-23 10:04:40 964 1

原创 Java如何在一行内输入若干个整数

今天做网易的笔试,其中有一道题挺简单的,但是题目的IO却特别恶心。特别是对于平时刷惯了leetcode核心代码模式的题目,对于IO就会一时半会反应不过来。所以这次就把遇到的特别恶心的IO的坑记录下来。情景是这样的:在一行内要输入若干个整数,第二行要输入一个整数。代码:String s =sc.nextLine();String[] strIn = s.trim().split(" "); // 以空格分割int[] nums=new int[strIn.length];for(int i

2021-08-21 23:49:12 6263

原创 在Kubernetes上搭建一个go webServer 指南

在Kubernetes上搭建一个go webServer 指南第一步:创建web.go文件该文件就是我们的web server。我们可以先在本地上测试一下,检查是否能够得到返回。我们所创建的这个web server监听的端口为8080,这个是我们自己设置的。package mainimport ( "fmt" "log" "net/http")func handler(w http.ResponseWriter, r *http.Request) { fmt.Fprintf(w,

2021-08-12 10:59:01 309

原创 Kubernetes里的三种port与三种ip区分

Kubernetes里的三种port与三种ip区分在介绍正文之前,我们首先要对k8s中的service有着自己深刻的理解。k8s中的service提供了一层对外的服务抽象。Kubernetes的Service定义了一种抽象:逻辑上的一组Pod,一种可以访问它们的方式。这一组Pod能通过Service被访问到,通过是通过Selector来实现的。简单来说Service就是一个把所有Pod统一成一个组,然后对外提供固定一个IP,具体是哪些Pod,可以通过之前介绍到的Label标签来进行设置,假设一个pod

2021-08-04 15:36:39 866

原创 在Kubernetes上搭建一个go webServer 指南

在Kubernetes上搭建一个go webServer 指南第一步:创建web.go文件package mainimport ( "fmt" "log" "net/http")func handler(w http.ResponseWriter, r *http.Request) { fmt.Fprintf(w, "Hello World")}func main() { http.HandleFunc("/", handler) fmt.Println("port:8080

2021-08-03 21:28:41 86

原创 通过Git上传golang项目大概步骤

通过Git上传golang项目大概步骤1.拉取项目第一步,先从GitLab或GitHub上将project通过git clone的方式拉下来。首先,先在本机电脑上的GOPATH路径下创建src文件夹,再在src文件夹下创建一个文件夹,一般命名为git.xxx.com。xxx就是你的名字了。mkdir -p /d/Goproject/src/git.hrlyit.com/然后就可以在这个目录下用git clone命令了git clone 链接git clone 有两种方式,一种是通过SSH的

2021-07-29 10:05:35 741

原创 Golang访问第三方接口并解析返回JSON格式的数据

Golang访问第三方接口并解析返回JSON格式的数据1.http请求/响应的步骤:1.客户端连接到web服务器2.发送HTTP请求3.服务器接受请求并返回HTTP响应4.释放TCP连接5.客户端浏览器解析HTML内容2.net/http包1.Go语言http-request教程:https://mojotv.cn/2019/07/30/golang-http-request2.Go-http中文文档:https://cloud.tencent.com/developer/section/

2021-07-27 19:34:59 2486 1

原创 CentOS配置Golang开发环境避坑指南

CentOS配置Golang开发环境避坑指南VMWare安装CentOS系统请参考博客:https://www.jianshu.com/p/fd79fdea8224CentOS命令行安装下载GO请参考博客:https://www.cnblogs.com/FengZeng666/p/14185701.html1.CentOS报 wget : command not found错误原因:刚安装好的CentOS没有wget解决方法:sudo yum -y install wget 2.用4K屏

2021-07-23 11:33:28 289

原创 剑指 Offer 57. 和为s的两个数字

题目输入一个递增排序的数组和一个数字s,在数组中查找两个数,使得它们的和正好是s。如果有多对数字的和等于s,则输出任意一对即可。代码双指针碰撞法初始化: 双指针 ii , jj 分别指向数组 numsnums 的左右两端 (俗称对撞双指针)。循环搜索: 当双指针相遇时跳出;计算和 s = nums[i] + nums[j]s=nums[i]+nums[j] ;若 s > targets>target ,则指针 jj 向左移动,即执行 j = j - 1j=j−1 ;若 s &lt

2021-07-01 20:25:46 55

原创 Windows下配置Hadoop环境

1、首先到官方下载官网的hadoop2.7.7,链接如下https://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/2、下载对应版本都是hadooponwindows-master.zip下载网址:https://github.com/4ttty/winutils或者找网盘的hadooponwindows-master.zip链接如下:https://pan.baidu.com/s/1vxtBxJyu7HNmOhsdjLZkYw提取码:y9

2021-06-30 09:56:22 1119

原创 Windows上python的spark环境搭建

1.安装好JDK下载并安装好jdk-12.0.1_windows-x64_bin.exe,配置环境变量:新建系统变量JAVA_HOME,值为Java安装路径新建系统变量CLASSPATH,值为 .;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;(注意最前面的圆点)配置系统变量PATH,添加 %JAVA_HOME%bin;%JAVA_HOME%jrebin在CMD中输入:java或者java -version,不显示不是内部命令等,说明安装成功。

2021-06-30 09:45:15 474

原创 剑指 Offer 53 - II. 0~n-1中缺失的数字

题目一个长度为n-1的递增排序数组中的所有数字都是唯一的,并且每个数字都在范围0~n-1之内。在范围0~n-1内的n个数字中有且只有一个数字不在该数组中,请找出这个数字。思路思路1 直接法直接法就是直接遍历整个数组,找到第一个值和下标不同的位置,返回该下标即可。时间复杂度为O(n).class Solution { public int missingNumber(int[] nums) { int n=nums.length; for(int i=0;i

2021-06-26 20:37:43 42

原创 剑指 Offer 53 - I. 在排序数组中查找数字 I

题目统计一个数字在排序数组中出现的次数。思路一开始我想的是,直接for循环遍历,后面觉得,这题肯定不简单。于是我就去看了一下大佬们都是怎么写的。大佬们的思路就是用了二分搜索算法,求出右边界,然后一剪即可,可以说非常惊艳了。代码class Solution { public int bound(int[] nums,int t){ int mid=0,left=0,right=nums.length-1; while(left<=right){

2021-06-26 19:59:47 55

原创 剑指 Offer 52. 两个链表的第一个公共节点

题目输入两个链表,找出它们的第一个公共节点。思路典型的数据结构的链表题。解法非常经典。我感觉leetcode给的题解比我在王道数据结构上看的要简单清晰明了很多,也优雅很多。大体思路就是,设置两个指针a和b,分别从头开始遍历两个链表ha和hb,直到两指针相遇为止a==b。如果a遍历完了链表ha,则从链表hb开始遍历,指针b同理。最后返回a即可。代码/** * Definition for singly-linked list. * public class ListNode { *

2021-06-26 19:26:11 76

原创 76. 最小覆盖子串

题目:给你一个字符串 s 、一个字符串 t 。返回 s 中涵盖 t 所有字符的最小子串。如果 s 中不存在涵盖 t 所有字符的子串,则返回空字符串 “” 。注意:如果 s 中存在这样的子串,我们保证它是唯一的答案。示例 1:输入:s = “ADOBECODEBANC”, t = “ABC”输出:“BANC”示例 2:输入:s = “a”, t = “a”输出:“a”提示:1 <= s.length, t.length <= 105s 和 t 由英文字母组成进阶:你能设计一

2021-06-17 22:47:35 95 1

原创 剑指 Offer 39. 数组中出现次数超过一半的数字

题目数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。你可以假设数组是非空的,并且给定的数组总是存在多数元素。示例 1:输入: [1, 2, 3, 2, 2, 2, 5, 4, 2]输出: 2限制:1 <= 数组长度 <= 50000思路这道题有三种思路我想到了前两种。。。。第一种也是最简单的一种,就是对数组进行排序,然后中点元素就是多数元素。第二种更直接,但相对来说复杂一些,就是统计每个元素出现的次数,然后再判断即可。重点讲一下第三种方法,摩尔投票法,也是

2021-06-09 20:34:26 45

原创 剑指 Offer 42. 连续子数组的最大和

题目输入一个整型数组,数组中的一个或连续多个整数组成一个子数组。求所有子数组的和的最大值。要求时间复杂度为O(n)。示例1:输入: nums = [-2,1,-3,4,-1,2,1,-5,4]输出: 6解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。提示:1 <= arr.length <= 10^5-100 <= arr[i] <= 100思路我觉得这道题真的真的是非常难的题目了。一开始我想的是用穷举的方法,后面发现,时间复杂度太高了。然后看了题

2021-06-09 19:43:18 81

原创 剑指 Offer 30. 包含min函数的栈

题目定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的 min 函数在该栈中,调用 min、push 及 pop 的时间复杂度都是 O(1)。思路这道题其实还是有点难的,因为一开始我想的是用一个数组来存储。但是每次求最小元素就要遍历整个数组,时间复杂度为O(n)。不符合题意。因此考虑设置一个辅助栈来实现,辅助栈用于存放最小的元素。思路如下:push函数:1.将x压入栈a中2.如果栈b为空或者x小于等于栈b的栈顶元素,则将x压入栈b中;pop函数:1.如果a的栈顶元素等于b的栈

2021-06-09 19:07:43 51

原创 Java中关于拷贝的知识点

Java中关于拷贝的知识点​ 今天在刷leetcode题的时候,直接将一个对象赋值给另一个对象,然后对赋值后的对象进行操作,原对象也跟着发生了变化,因此,特地研究了一下关于Java中的拷贝。从复制操作开始讲起int a=10;int b=a;对于基本数据类型的复制,是将a的值复制一份,然后给b,此时,修改b的值,a的值并不会发生改变,这是值的复制。ListNode a;ListNode b;b=a;对于引用数据类型的复制,是将a的地址复制给b,所以此时b和a所指向的是同一个对象。讲到

2021-06-08 20:54:02 215

原创 剑指 Offer 40. 最小的k个数

题目输入整数数组 arr ,找出其中最小的 k 个数。例如,输入4、5、1、6、2、7、3、8这8个数字,则最小的4个数字是1、2、3、4。示例 1:输入:arr = [3,2,1], k = 2输出:[1,2] 或者 [2,1]示例 2:输入:arr = [0,1,2,1], k = 1输出:[0]限制:0 <= k <= arr.length <= 100000 <= arr[i] <= 10000思路这道题非常简单,只需要排个序,然后输出前k个数即

2021-06-08 19:11:17 87 3

原创 剑指 Offer 24. 反转链表

题目定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点。示例:输入: 1->2->3->4->5->NULL输出: 5->4->3->2->1->NULL限制:0 <= 节点个数 <= 5000思路反转链表最经典的办法莫过于头插法了。但需要注意的是浅拷贝和深拷贝的区别。对于基本数据类型而言,a=b,是直接将值复制一份,但对于引用数据类型而言,则是浅拷贝,即是对对象地址的复制,两者指向的仍是同一个对

2021-06-08 18:20:32 48

原创 剑指 Offer 17. 打印从1到最大的n位数

题目输入数字 n,按顺序打印出从 1 到最大的 n 位十进制数。比如输入 3,则打印出 1、2、3 一直到最大的 3 位数 999。示例 1:输入: n = 1输出: [1,2,3,4,5,6,7,8,9]说明:用返回一个整数列表来代替打印n 为正整数思路第一种思路,通过递归来完成第二种思路,直接调用Math类中的pow方法来完成代码class Solution { public int theMax(int n){ if(n==1) return 9;

2021-06-08 16:10:08 37

原创 剑指 Offer 22. 链表中倒数第k个节点

题目思路这道题还是特别简单的,就是设置两个指针,front和rear,让front指针先走k步,然后再让rear和front一起前进,直到front走到链表尽头为止。这是一道特别特别特别简单的数据结构题,我用脚趾头都能写出来。然而然而然而我却被测试例子各种吊打,一番总结之后,发现了其中有一个特殊情况要提前判断:就是就是就是要想判断链表长度和k之间的关系,如果链表长度小于k,那就说明倒数的节点就是头节点!!!代码/** * Definition for singly-linked l

2021-05-31 11:46:49 38

原创 剑指 Offer 29. 顺时针打印矩阵

题目思路写在前面,我觉得这道题放在easy难度就是离谱,一开始,我根本就写不出来,然后看了一下大神们的题解,有一位大神用了模拟有限状态机的方法来写,思路挺好的,但是大可不必,于是我简化了其中的思路,但其本质还是从一个状态转换到另一个状态。定义四个变量,top,right,bottom和left状态1:行不变,列变top++状态2:列不变,行变right–状态3:列变,行不变bottom–状态4:行变,列不变left++然后循环这四个状态,直到top>bottom和left&g

2021-05-31 11:10:14 48

原创 剑指 Offer 28. 对称的二叉树

题目思路重点是理解整个的递归思路。二叉树的题目的关键就在于递归。以本题为例,判断二叉树是否镜像相等,自顶而下递归考虑。代码/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */class Soluti

2021-05-27 20:50:00 30

原创 剑指 Offer 27. 二叉树的镜像

题目思路非递归:利用队列。根节点先入队。循环入队,条件:队列不为空(注意,LinkedList没有isEmpty()这个方法,判断队列不为空list.size()!=0)弹出队首节点。加入节点的左右孩子节点进队列中。交换左右孩子。递归:root.left = mirrorTree(root.right);root.right = mirrorTree(temp);非常简单,就是一个递归交换左右孩子节点,因为二叉树本身就是递归定义的。class Solution {

2021-05-27 20:02:17 40

原创 剑指 Offer 25. 合并两个排序的链表

题目输入两个递增排序的链表,合并这两个链表并使新链表中的节点仍然是递增排序的。示例1:输入:1->2->4, 1->3->4输出:1->1->2->3->4->4限制:0 <= 链表长度 <= 1000思路说实话,这道题还是特别简单的,只是第一次用java来写数据结构的题目,有一点点不顺手,比如说在本题中,我一直没有想清楚头节点的表示方法,因为题目给的listNode封装里边就没有头节点这一个概念。所以这种情况下,我们使用到

2021-05-26 21:20:05 42

原创 剑指 Offer 15. 二进制中1的个数

题目请实现一个函数,输入一个整数(以二进制串形式),输出该数二进制表示中 1 的个数。例如,把 9 表示成二进制是 1001,有 2 位是 1。因此,如果输入 9,则该函数输出 2。示例 1:输入:00000000000000000000000000001011输出:3解释:输入的二进制串 00000000000000000000000000001011 中,共有三位为 ‘1’。示例 2:输入:00000000000000000000000010000000输出:1解释:输入的二进制串 0

2021-05-26 20:33:50 87 2

原创 剑指 Offer 03. 数组中重复的数字

题目找出数组中重复的数字。在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。示例 1:输入:[2, 3, 1, 0, 2, 5, 3]输出:2 或 3来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/shu-zu-zhong-zhong-fu-de-shu-zi-lcof著作权归领扣网络所有。商业转载请联

2021-05-24 20:51:56 34

原创 剑指 Offer 09. 用两个栈实现队列

题目用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素,deleteHead 操作返回 -1 )示例 1:输入:[“CQueue”,“appendTail”,“deleteHead”,“deleteHead”][[],[3],[],[]]输出:[null,null,3,-1]示例 2:输入:[“CQueue”,“deleteHead”,“appendTail”,

2021-05-24 20:19:43 38

原创 csp202012_2期末预测之最佳阈值

题目题目就略了,相信大家肯定也知道题目才过来看的,懒得贴题目了。思路先讲讲思路,思路有两种,第一种暴力解法,相信大家都会,但如果用这种解法的话,只有70分。第二种解法,是我在考场上没有想到的,现在才慢慢想清楚。如果按照题目的意思,写了一个predict函数,那一定会有双重循环,一定会超时。因此我们要降低时间复杂度,把O(n^2)降成O(n)。其实我们可以发现,双重循环的计算过程中存在重复计算,所以我们只需计算它有多少个0和多少个1.遍历思路:遍历0的话,从头开始遍历,等于前面的0数+1;遍历

2021-03-31 19:00:47 106

原创 c++之set用法整理

概述set,集合,是一个内部有序且不含重复元素的容器。在考试中有可能需要去掉重复元素的情况,而且有可能因为这些元素比较大或者类型不是int型而不能直接开散列表,在这种情况下就可以用set来保留元素本身而不考虑其个数。set具备的两个特点:set中的元素都是排序好的set中的元素都是唯一的,没有重复的关联容器和顺序容器有着根本的不同:关联容器中的元素是按关键字来保存和访问的。与之相对,顺序容器中的元素是按它们在容器中的位置来顺序保存和访问的。关联容器不支持顺序容器的位置相关的操作。原因是关联容

2020-12-18 22:52:19 2351 1

HZAU人工智能导论itc作业整理.pdf

HZAU人工智能导论itc作业整理及备考资料

2021-11-08

空空如也

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

TA关注的人

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