自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 MachineLearning 24/6/11

做出代价函数与w,b的函数图像,如图。代价最小的时候正是立体图的最低点。也正是俯瞰图最小中心椭圆的中心点。例如通过房子的面积来预测房子价格。首先需要通过一组数据来做出图像让机器来模拟,这组数据专业术语也叫做训练集。随着梯度下降,代价函数的值越小。所以需要一种算法来求得这个这个点,也就是梯度下降算法。线性回归模型是监督学习中的一种基本的模型。,需要让代价函数尽可能的小,这样才是拟合的最完美的直线,才能做出尽可能的预测。首先是最简单的单元线性回归模型。需要预测出这样的线性方程来模拟数据。

2024-06-11 18:22:44 191

原创 树状数组优化

【代码】树状数组优化。

2024-04-23 10:55:00 95

原创 简单的并查集应用和应该注意的点

看merge函数,在对a和b两个顶点进行合并操作的时候。是对这一整个大集合操作,所以要先找到这a和b的根节点祖宗。然后进行合并操作之前,要先判断这两个顶点是不是已经是一个集合的了。在没有输入路的时候,没有进行合并的时候,一开始每一个顶点都是自己的根节点。sort函数包过要会写它的cmp函数,能够自己定义比较的方式,就会很轻松。一开始我没写find函数,默认输入的两个就是根节点了,然后就wa了。但很多时候find和merge都是一起出现的。并查集的建立和并查集的两个基本操作,即合并merge和查找find。

2024-01-23 20:18:13 332 1

原创 Leetcode5 最长回文子串 12/5

注意长度的表示:r=i-1,r=i+1时,没有判断就先往外扩散了一次,所以回文子串的长度为r-l+1-2(其中的-2为没有判断就扩了的长度)也就是r-l-1。然后使用一个left与right指针,逐渐向外扩散。当不满足条件时候,判断是否长度比之前的res长度长。相邻的相同为一种子串。思路:遍历整个字符串。回文串包过两种情况。中间的不管为什么字母。无脑暴力做法,时间复杂度为O(N^2)

2023-12-05 22:38:53 16

原创 题记 小和 归并排序

方法2:使用归并排序的方法(此法的时间复杂度为O(n*log(2,n)大大优化了),转换思维。再每次的递归排序的递归过程中,当要将左部分的数拿出来时,就会存在小和。然后4与7比较,4小,拿出来4。此时拿出左边的数时,小和要改变加上1个4.同理后面还要拿出5,此时小和加上1个5。方法1:采用暴力的写法,一个数一个数列举它之前的数,然后再累加起来。例:5 4 7 6 2一连串数字,5前面没有比5小的数,所以为res+0。同理列举6和2,最后小和为res=18=(4+5)+(4+5)。7前 5和4均比7小。

2023-11-25 15:55:13 19

原创 浅谈二分法

一般地,arr[i]<arr[i+1] and arr[i]<arr[i-1]。如上所说,一些问题只要抓住了问题的特殊性和条件的特殊性就可以使用二分法。特别地if arr[0]<arr[1],可以称arr[0]为局部最小值。同理,if arr[n-1]<arr[n-2],可以称arr[n-1]为局部最小值。如if arr[mid]>arr[mid-1] 或 arr[mid]>arr[mid+1]巧妙地运用的问题的特殊性,和条件的特殊性。此问题若要使用暴力的做法为遍历整个数组来寻找,时间复杂度为O(n)的。

2023-11-19 11:05:23 25 1

原创 算法 DFS 2023/10/28

深度优先搜索的搜索方式为一路条走到底,当发现没有路走下去的时候,然后才会返回到上一个节点。使用DFS来解决问题最重要的是考虑顺序,用怎样的顺序将全部的方案遍历一边。两个重要的概念:回溯与剪枝。浅看这道简单的DFS。当路径用递归走到了尽头,就得让st[i]=false,与上面相反。这就是回溯的道理,也就是恢复现场。简单讲讲DFS,即深度优先搜索。

2023-10-28 15:44:16 38

原创 算法 三种排序 2023/10/27,28

然后用两个指针分别指着两个数组,将小的数拿出来存储到新的数组之中去。12~16行:若两个小数组都没有比较完,就将小的拿出来。若比较完了,哪个数组有多,用两个while循环再放进来。17:最后再将排序好的新数组的数据放回原数组。等于将数组分为h个小数组,再将这h个小数组使用插入排序。h相当于间隔,8~10行为将h扩大,将原数组a[]分开。12行代码:将a[i]插入到a[i-h],a[i-2*h]......之中。思想:取一个数值x,让x左边的数都小于等于x,让x右边的数都大于等于x。

2023-10-28 09:11:54 39

原创 算法 两种排序方法 2023/10/26

思想:将a[i]插入数据中,然后将左边的数据排列。理解难点:先是将a[i]给了a[j],然后a[j]与左边的一位a[j-1]一位一位比较。因为j--,所以是一位一位的向左推进,当j=0时,j的左边就排序完成。思想:一行数据,取第一个a[0]与后面的每一个比较,然后将其中最小的放在第一位。再取a[1]与后面的每一个数据比较,将最小的放在第二位。以此类推,当取到最后一位的时候,排序完成。

2023-10-26 23:24:45 37 1

原创 LeedCord 3 2023/10/23

重点:如果遇到了相同的字符就会跳出循环,但此时i指针与r是不相等的。所以第14行的else起作用,此时i所在位置就是最左边与r位置有相同字符的位置。所以l=i+1,起到了一个将最左边相同字符跳出的作用。也就是说如果i走到和r重合,此时就没有相同字符。若期间有相同字符,肯定也在最左边被踢出。双指针暴力算法(小豪,我水平不够=-=弹框加哈希表那个做法我看不懂)我只能说比绝绝子还绝绝子,太牛逼了这个做法,当然不是我想到的。思路:从左定一个指针,另一个指针向后移动。题3:无重复字符的最长字符串。

2023-10-23 14:26:15 27

原创 LeedCord 1,2 2023/10/20

为了避免寻找target-x一遍一遍的遍历,使用哈希表直接查询在哈希表中有没有存在这个值。find()的使用:如果是没有找到的话,是返回哈希表的最后一个元素的下一个位置。说明:此为建立一个哈希表。 意味将a映射到b之中。使用后,再将x放入哈希表,防止x与自己进行匹配。方法1:暴力做法,将i后的所有数都拿出来计算。说明:建立一个头节点(新链表)用于存储新数据。使用的容器 unordered_map

2023-10-21 09:13:25 55 1

空空如也

空空如也

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

TA关注的人

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