自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Preceptron感知机

在上一章中,我们讨论了回归问题,主要的任务就是拟合出数据集分布的解析式。而这一次的学习中,我们将关注分类问题。

2024-07-17 20:27:03 1049

原创 Linear Regression线性回归

在本专栏中,我们将学习机器学习的知识。

2024-07-03 05:54:04 978

原创 GIF转字符画

由此我们不禁思考,对于动态的gif应该怎么转换呢?

2024-06-25 00:15:57 874

原创 静态图片转字符画

不知道大家是否看到过这样的视频,说是有人用女朋友的名字或者1314画出女朋友的照片。哈哈,不知道后续怎么样?但是他们绘画技艺真的很高啊。那么我们如果用python能不能实现呢?尽管不能像手绘一样那么灵动,也可以实现大致的效果,这就是静态图片转字符画。

2024-06-20 19:55:46 717

原创 DBSCAN算法

但是,k-means算法是以中心点发散来聚集簇的,换句话来说k-means算法适合处理圆形数据分布的分类,同时还要预先设置簇的数目K,在某些情况下并不算好用。k-means的分类结果是:如果是以我们肉眼来划分,应该是类似于太极阴阳鱼这样的分类。但是k-means就简单的从中间划分了。有什么办法能够弥补k-means算法这样的缺陷吗?

2024-06-20 18:05:54 334

原创 K-means算法

Clustering(聚类问题)我们可能遇到这样的问题,例如:有一个数据集:在坐标系中需要对这些数据进行划分:解决聚类问题,有一种很著名的方法就是K-means算法。

2024-06-20 15:54:47 916

原创 webp动图转gif

那么对于含动图的webp文件我们如何将其转为gif文件呢?打开链接下载后发现是webp格式的,尽管在“另存为”的时候,将保存类型选为“所有文件”,然后文件名加.gif后缀可以下载为gif格式但是打开这个文件却并不是动图。由此我想要思考怎么才能将webp文件转为gif呢?(虽然在线格式转换的工具有很多,但是为什么不尝试自己动手解决呢?

2024-06-20 12:31:31 3280

原创 爬取百度图片

最开始,我们想要爬取图片,首先需要打开百度图库,然后在搜索栏中输入自己想要的图片(比如说壁纸)。接着右键检查,点击网络:起初可能没有名称信息,刷新界面就可以了。打开信息,查看标头内容可以看到请求URL为:复制这串URL,然后在浏览器中打开这个就是我们搜索的壁纸图片的网页内容。怎么找到图片的URL呢?在上述内容中,找到data,可以发现里面每隔一个aiEditData,下面代码的形式是一样的,就相当于一张图片。

2024-06-18 10:52:11 1594 1

原创 webp文件转为jpg文件

我们往往在百度上搜索图片作为头像,但是有时候在百度上下载的图片却是webp文件的格式,这样的格式可能无法上传为头像,那么应该怎么将webp格式转为jpg格式呢?转换格式的软件有很多,也有一些网站支持在线转换。不过,我们在学习python后,可以考虑考虑运用学到的知识自己来解决这个问题。在这里input.webp为需要更换格式的文件,output.jpg为完成更换的文件。使用python进行图片格式的转换可以借助pillow库。本身逻辑很简单,即打开.webp文件,将其转换为RGB模式(这是因为。

2024-06-18 01:57:59 749

原创 遗传算法求解n皇后问题

我们进行这样的思考,假设有一个长颈鹿的种群,但是这群长颈鹿的脖子不算很长只能吃到底层的树叶,渐渐的,底层的树叶越来越少,这群短脖子的长颈鹿生存压力愈发增大。在长颈鹿种群繁衍的过程中,某些后代长颈鹿发生变异出现了长脖子的性状,它们可以吃到更丰裕的上层树叶,这样能吃到上层树叶的长颈鹿生存压力小,只能吃到下层树叶的长颈鹿生存压力大,随着时间的推移,短脖子的长颈鹿越来越少,长脖子的长颈鹿数量变得更多。所以,长脖子基因慢慢在种群中占据更大比例,这一过程就是自然选择。

2024-06-16 00:16:58 1096

原创 模拟退火法求解n皇后问题

这是一种优化算法,现在我们有一个任务:需要随意从某个地点出发,到达最低点的山底位置,如下图:在传统的爬山法策略下,我们每次都按照变化最大的方向前进,但是有一个问题,如果遇到了一个小山谷怎么办?我们只能找到一个不算很合适的解,之后就不再前进了。模拟退火的策略就是解决这个问题的。我们直到温度越高,其内部分子运动就越剧烈。

2024-06-02 17:03:40 920

原创 爬山法求解n皇后问题

首先随机一个棋盘,模拟我们出生在山腰的某个位置,然后计算每行该位置的冲突值,按照冲突值最小的位置选择放置皇后(这里与之前红绿灯的例子稍微不同,这里的冲突值相当于F,但是冲突值是选择更小的方向,不过本质上是一样的,都是寻找最值的方向,即一种反方向的爬山)。假设先求第一行的最优位置,我们从第一行第一列的格子开始遍历,第一个位置就是图中黄色圆所在的位置,它的攻击对数为5(因为剩下所有皇后都在它的对角线上),然后第一行剩下的位置的攻击对数都是1(因为除了第一个位置外,其他的位置在其他行都有1个同列的皇后)。

2024-06-01 16:55:12 867

原创 堆排序回顾

大根堆是一种特殊的二叉树,在大根堆中,每个节点的值都大于等于其子节点的值。在实际编程中也可以用数组存储大根堆,其中假设i位置是一个节点,那么它的左孩子节点位置为i*2+1,右孩子节点位置为i*2+2.即完全二叉树的性质。堆排序的第一步是建立大根堆,然后将这个大根堆的根节点(最大值)与数组中最后一个元素交换位置,并将堆的大小减1(相当于取出原来的最大值根节点)。将剩下的堆继续进行大根堆创建。在大根堆化的函数maxHeapify函数中,a是数组,i是根节点,heapSize是堆的大小。这里回顾以下堆排序。

2024-03-30 17:06:57 192 1

原创 数组中的第k个最大元素

在快排函数中添加了一个参数k,最后直接返回该位置的元素。其实主要还是快速排序的实现。给定一个整数数组和一个整数k,请返回数组中第k个最大的元素。即如果我们按照从小到大排序,那么返回数组第n-k位置的元素。如果我们按照从大到小排序,那么返回数组第k-1位置的元素。在这里使用两种排序方法。这一题重要的是排序。

2024-03-30 16:14:02 202 1

原创 快速排序回顾

在循环中我们进行当前元素与基准元素的判断,如果小于说明当前元素应该在小于区域,这时候需要将当前元素交换到小于区域中,同时小于区域的右边界++,i++并且lt位置的元素是基准,因为i是从l+1开始的,基准的开始为l,那么只有在第一个if中涉及到交换基准,而之后i的位置都会在基准的后一个位置。我们看一下交换的本质,当前元素大于基准的情况下,先将当前元素与gt位置元素进行交换之后gt-1,因此gt之后的元素都是大于基准元素的。而当前元素小于基准的情况下,当前元素与lt交换,因此lt位置之前的元素都是小于基准的。

2024-03-30 16:04:14 404 1

原创 最近的请求次数

可以选择使用队列解决,每次ping的时候,将参数入队,首先根据该参数计算出时间范围,最重要的是左界,然后从队首遍历队列,如果队首元素小于左界则出队;如果队首元素大于等于左界则此时队列大小就是返回值,并且退出循环。毫秒内发生的所有请求数(包括新请求)。RecentCounter()初始化计数器。表示以毫秒为单位的某个时间,并返回过去。int ping(int t):在时间。添加一个新请求,其中。

2024-03-29 12:44:27 145 1

原创 你可以安排的最多任务数目

在枚举中,有一个if条件句,其中的第一条语句,prev函数可以返回集合最后位置的前一位,即如果说ws的大小为y,那么这里返回的是y-1,*it实际上表示的就是ws中的最后一个位置的元素,也是最大的元素。然后遍历tasks数组,以tasks为基础判断每个任务是否能够被工人完成(完成的条件是力量值大于任务值,或者力量值加上药剂增加的力量值大于任务值),总而言之,策略是力量值小的工人完成任务值小的任务,力量值大的工人完成任务值大的任务。否则,我们求得加上药丸能够完成任务的力量值最小的工人。

2024-03-29 11:57:08 739 1

原创 字符串中的第一个唯一字符

我们用哈希表统计字符串中每个字符出现的个数,然后遍历字符串,输出当前遍历字符统计个数为1的索引,如果不存在,最后输出-1.问题描述:给定一个字符串s,找到它的第一个不重复的字符,并返回它的索引,如果不存在,则返回-1.

2024-03-28 14:56:41 243

原创 拼接最大数

通过栈顶指针的移动来表示某个数字是选择还是舍弃,当前遍历数字与栈顶元素比较,如果当前遍历数字更大那么就舍弃栈顶元素,那么remain就要减1,当remain为0时说明我们已经舍弃了remain个数字,即表明供我们选择的只剩下k个了不能再舍弃只能全部选择了。问题描述:有两个整数数组nums1和nums2,它们的长度分别是m和n,现在给一个整数k,需要在这两个数组中按顺序取出k个数字,最后组成一个长度为k的数组,要求最后长度为k的数组最大。对于该函数,输入一个数组和k,得到一个k个元素的按顺序最大的数组子串。

2024-03-28 13:41:01 602

原创 去除重复字母

如果不是递增的顺序,例如stk中为**c,当前字符为a,我们需要考虑是否删除栈顶元素c,如果num[c]大于1,说明a之后还有多个c,那么删除栈顶的c能够使得子串的字典序最小,因此弹出栈顶元素,同时置vis栈顶元素为0,表示这个字符已经弹出了,需要重新处理。我们可以动态生成结果字符串,假设原字符串长度为n,我们已经得到了一个长度为m(m<n)的字典序最小的非重复子串,然后将接下来的字符考虑添加进这个子串,使得这个子串仍然满足题目要求,直到将原字符串所有字母都进行处理,这样得到的子串就是题目要求的结果。

2024-03-25 21:29:50 299

原创 移掉K位数字

2.存在最小的数字,它是以上某个贪心操作中当前数字大于等于之前的数字(如xx267xx),却删除了当前数字(删除了6)得到的,最后结果是(xx27xx),贪心算法是保留了当前数字,得到(xx26xx),这与之前假设的(xx27xx)最小相悖,因此经过贪心操作得到的数字最小。贪心算法保留了当前数字6,但是进入下一轮迭代,当前数字为1,之前数字为6,当前数字小于之前数字,应该删除之前数字,得到(xx21xx)。如果我们移除①位置的数字,那么剩下的字符串就是以②位置的数字为最高位的数字。这是一种贪心的思想。

2024-03-21 17:16:31 853 1

原创 二叉树的中序遍历

二叉树的遍历可以使用递归的方法,中序遍历的规则为先递归左孩子节点,访问当前节点,递归右孩子节点。给定一个二叉树的根节点root,返回它的中序遍历。

2024-03-19 18:05:22 230 1

原创 有效的括号

我们可以利用栈来解决。定义一个栈,如果是左边的括号,则将该字符放入栈中,当遇到右边的括号,则判断栈顶元素是否能与当前右括号匹配,如果不能则输出false,如果能够匹配,继续遍历字符串之后的字符。遍历完字符串后,如果当前栈还有元素的话,输出false;输入:s="()[]{}",判断字符串是否有效。输入:s="([)]"

2024-03-19 17:52:00 182 1

原创 矩阵置零问题

首先定义结构体Point,用来存储矩阵中某个元素的横纵坐标。然后遍历给定矩阵中的元素,当遇到值为0的元素时,新建Point变量,存储这个元素的坐标,放入栈中。问题描述:给定一个m*n的矩阵,如果一个元素为0,则将其所在行和列的所有元素都设为0,请使用原地算法实现。这样,弹出栈顶元素,根据栈顶元素的坐标数据将原矩阵的横列数据全置0。最后的结果为矩阵中所有值为0的坐标都存储栈中。

2024-03-19 17:13:14 140 1

原创 顺时针旋转图像

问题描述:给定一个n*n的二维矩阵matrix表示一个图像,请将这个图像顺时针旋转90°。我们可以像剥洋葱一样,一圈一圈来计算。根据一圈的一条边,可以计算每个元素应该旋转的位置。要求:必须在原地旋转图像,即需要直接修改输入的二维矩阵,不能使用另一个矩阵旋转图像。

2024-03-19 16:47:01 239 1

原创 生命细胞游戏

同时由于board是有边界的,所以我们对某个位置计算它的下一个状态的时候,边界处理与中间某位置周围网格数是不同的,为了能够使用相同的办法计算,我们可以将这个新矩阵最外一圈添加0来解决。问题描述:给定一个m*n个格子的面板,每一个格子都可以看成是一个细胞,每个细胞都有一个初始状态:1为活细胞,0为死细胞。3.如果当前细胞为活细胞,它周围八个位置有超过3个活细胞,则该细胞死亡,模拟生存压力过大;4.如果当前细胞为死细胞,它周围八个位置正好有3个活细胞,则该细胞复活,模拟繁殖。

2024-03-19 15:28:51 206 1

原创 求解螺旋矩阵

我们可以将矩阵看作是一个迷宫,有一个探险家进行探索,他先从迷宫的左上角开始向右边行进,遇到迷宫墙壁按照顺时针旋转90°继续进行探索。当他探索完成后一条迷宫的边后,这个迷宫墙壁会向中间移动即探索后的路线就不能再次探索了。因此,对于这个问题,我们需要不断的更新边界,直到边界压缩成一个边界为止。输入:matrix=[[1,2,3],[4,5,6],[7,8,9]]给出一个m行n列的矩阵,按照顺时针螺旋顺序,输出矩阵中的所有元素。输出:[1,2,3,6,9,8,7,4,5]

2024-03-19 14:04:33 237 1

原创 士兵巡逻问题

由于要考虑所有士兵的情况,假设我们让某个士兵巡逻时间最少,那么另外的士兵巡逻时间就会变多,这样的情况下,要让最后的时间最少,那么可能的办法就是把巡逻时间多的士兵所要巡逻的城墙点分给那些时间少的士兵,这样最终每个士兵所花费的时间都会尽可能接近,那么这时候花费最长时间巡逻的士兵的时间就是我们所要求的时间。反之,在大的一部分时间找。问题描述:有一段城墙需要士兵进行巡逻,每个士兵只能巡逻连续的城墙点,每个城墙点需要耗费士兵的巡逻时间,请问怎样设计能够使得士兵巡逻的总时间最短,求最短时间是多少。

2024-03-19 02:02:11 382 1

原创 提取最长连续数字子串

提取最长连续数字子串

2024-03-18 22:11:29 306 1

K-means算法的数据集

K-means算法的数据集

2024-06-20

空空如也

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

TA关注的人

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