自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 python算法模板第二部分(2)(Trie树、并查集、堆、哈希表、字符串哈希法)

注:本文是在学习了acwing的算法基础课后撰写,主要用于记录python版本算法的模板。其中部分参考了acwing众多大佬的题解。1.Trie树思想:Trie树是用于快速存储和查找字符串集合的数据结构。一般情况下,字符串要么只有小写、要么只有大写、要么只有数字,不会同时出现太多情况,否则分叉太多,搜索慢。常见操作:1.insert向集合中插入一个字符串 x(存储)2.query询问一个字符串在集合中出现了多少次(查找)模板:N = 100010idx = 0son = [[0] *

2021-07-18 16:55:15 412

原创 python算法模板第二部分(1)(单链表、双链表、模拟栈、模拟队列、单调栈、单调队列、KMP算法)

注:本文是在学习了acwing的算法基础课后撰写,主要用于记录python版本算法的模板。其中部分参考了acwing众多大佬的题解。1.单链表思想:本部分将使用数组实现链表操作,而不使用指针。数组e用于存放链表值(val),数组ne用于存放下一个链表节点(next),index用于存下标。常见操作:1.向链表头插入一个数2.删除第 k 个节点后的节点3.在第k个节点后插入一个节点注:第 k 个节点并不是指当前链表的第 k 个数,而是第k个插入链表的数(即下标为k的数)模板:N = 100

2021-07-13 17:59:26 330 1

原创 局部加权线性回归、最小二乘、逻辑回归、牛顿法

一、局部加权线性回归由来及原理原始线性回归目标函数:J(θ)=12Σi=1m(hθ(x(i))−y(i))2J(θ) = \frac12Σ_{i=1}^{m}(h_θ(x^{(i)}) - y^{(i)})^2J(θ)=21​Σi=1m​(hθ​(x(i))−y(i))2局部加权线性回归目标函数:J(θ)=12Σi=1mω(i)(hθ(x(i))−y(i))2J(θ) = \frac12Σ_{i=1}^{m}\omega ^{(i)}(h_θ(x^{(i)}) - y^{(i)})^2J(θ)=2

2021-07-09 21:45:01 699 4

原创 python算法模板第一部分(3)(双指针、位运算、离散化、区间合并)

1.双指针思想:朴素的两重循环需要O(n2n^2n2),可以利用某种性质(i和j之间的单调关系)将其变为O(n)。可用于单序列和双序列。单序列中可用于维护一段区间,双序列中用于维护某种次序,如有序序列的合并。模板:# 朴素做法(用于对比):for i in range(n): for j in range(i): if check(j, i): res = max(res, j - i + 1)# 双指针做法:for j in range(n): while i <=

2021-07-09 14:09:20 381

原创 python算法模板第一部分(2)(前缀和与差分)

注:本文是在学习了acwing的算法基础课后撰写,主要用于记录python版本算法的模板。其中部分参考了acwing众多大佬的题解。1.一维前缀和思想:原数组 a1a2...ana_1 a_2...a_na1​a2​...an​前缀和 Si=a1+a2+...+aiS_i = a_1 + a_2 + ... + a_iSi​=a1​+a2​+...+ai​ (下标从1开始方便计算),定义S0=0S_0 = 0S0​=0前缀和的作用:快速求出原数组中一段数的和。例如,求 [l, r] 区间内数组a

2021-07-06 22:33:02 1644 6

原创 线性回归与梯度下降、正规方程

前提m行数据,n列特征数学模型hθ(x)=Σj=0nθjXj(X0=1)h_θ(x) = Σ_{j=0}^{n}θ_jX_j(X_0=1)hθ​(x)=Σj=0n​θj​Xj​(X0​=1)目标函数J(θ)=12Σi=1m(hθ(x(i))−y(i))2J(θ) = \frac12Σ_{i=1}^{m}(h_θ(x^{(i)}) - y^{(i)})^2J(θ)=21​Σi=1m​(hθ​(x(i))−y(i))2任务寻找θθθ使J(θ)J(θ)J(θ)最小方法方法一、梯度下降(Gra

2021-07-06 12:33:58 245

原创 python算法模板第一部分(1)(快速排序、快速选择、归并排序、整数二分、实数二分)

注:本文是在学习了acwing的算法基础课后撰写,主要用于记录python版本算法的模板。1.快速排序思想:用列表中的一个数(pivot)来分割列表,左侧的数都小于pivot,右侧的数都大于pivot。步骤:1.确定pivot。左、右、中点、随机都可以,选择不同代码上可能有细微区别。这里选择中点。2.调整pivot左侧和右侧的数,使左侧的数都小于pivot,右侧的数都大于pivot。利用双指针。3.递归处理左、右两段。模板:def quick_sort(nums, start, end):

2021-07-06 12:32:31 868 1

空空如也

空空如也

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

TA关注的人

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