- 博客(50)
- 收藏
- 关注
原创 机试打卡 -14 轮转数组(数组)
①nums=nums[::-1],会改变nums的地址;nums[:]=nums[::-1],不会改变nums的地址。②数组翻转的代码 nums[:k]=nums[:k][::-1];nums[k:]=nums[k:][::-1]这种写法虽然简单,但效率不高。因为若 k 很大时,每次都需要执行。这两个操作,引入模运算可以应对k较大的情况。
2023-05-27 20:11:03 56
原创 机试打卡 -13 最小覆盖子串(滑动窗口)
在滑动窗口类型的问题中都会有两个指针,一个用于「延伸」现有窗口的 r 指针,和一个用于「收缩」窗口的 l 指针。在任意时刻,只有一个指针运动,而另一个保持静止。我们在 s 上滑动窗口,通过移动 r 指针不断扩张窗口。当窗口包含 t 全部所需的字符后,如果能收缩,我们就收缩窗口直到得到最小窗口。
2023-05-27 19:26:55 62
原创 机试打卡 -12 滑动窗口最大值(优先队列&堆)
在有些情况下,可能需要找到元素集合中的最小或者最大元素,可以利用优先队列来完成操作,优先队列ADT是一种数据结构,是一种有特殊用途的数据结构,用来在一组变化频繁(发生增删查改的频率较高)的数据集中。我的思路1:队列,每次 出队+入队,记录1个队列中的最大值索引,超时。我的思路2:建立排序队列,每次 出队+入队,采用 折半搜索,超时。官方题解:优先队列(堆),将整个数组看作是堆。
2023-05-27 12:07:40 1325
原创 机试打卡 -11 数组的乘积(前缀和)
思路:“除自身以外的数组的乘积”可以转化为求该元素的前缀积和后缀积,即先遍历两遍数组,得到前缀积数组和后缀积数组,第三次遍历即将前缀积数组和后缀积数组按位相乘。注意:后缀suffix 需倒序排列。
2023-05-26 16:41:13 95
原创 机试打卡 -10 最长子串(哈希表&滑动窗口)
我的思路:首先构建列表作为滑动窗口。在遍历字符串的过程中,当出现重复字符时,删除 滑动窗口(列表) 从开头到重复字符位置的所有元素。“最长子串”,很容易想到 滑动窗口。
2023-05-25 21:16:13 62
原创 机试打卡 -07 盛水的容器(双指针)
假设某一时刻,water=W,选择容器的左边界索引为 i ,高度为 height[i]。那么容器至少需要 W/height[i] 的宽度才有可能突破 W 的容量上限。优化一下:当每次选择一个容器的左边界时,并不需要遍历计算之后每一条垂线充当右边界的情况。最简单粗暴的方法,两个for循环,遍历 n(n-1)/2 次,当然超时。
2023-05-25 10:51:49 67
原创 机试打卡 -06 异位词分组(哈希表)
比如可以通过list.append(),set.remove(),dict[‘key‘] = value对其进行修改,所以它们都是不可哈希的;②dict.values() 将字典中的所有 value 全部取出,但需要使再用 list() 或 tuple() 转换数据类型;①sorted() 函数将返回一个排序后的列表,若需要重新组合成字符串,需使用 "".join()函数。一个对象在其生命周期内,如果保持不变,就是hashable(可哈希的)。dict.keys() 同理。
2023-05-24 20:21:47 705
原创 机试打卡 -05 接雨水(动态规划&栈)
新柱子的 right_height 则分为两种情况,一种是 新柱子的高度不等于前一个柱子的 right_height,这种情况下则令新柱子的 right_height 直接取 前一个柱子的 right_height 即可;另一种情况则是 新柱子的高度等于前一个柱子的 right_height,即说明前一个柱子的 right_height 可能取自该根柱子,则新柱子的 right_height 取后面的柱子的最大值(数组切片) 即可。动态规划 - 复杂度分析。,有些类似递归的思想。
2023-05-24 18:49:53 730
原创 机试打卡 -04 移动零(双指针)
当第一次出现0元素之前,左右指针齐头并进。但当第一个0元素出现时,右指针和左指针同时指向该0元素,但随后右指针继续向右移动,直到下一个非零元素的交换。次,用 i 记录当前指针的位置。若当前元素非零,i+1;若当前元素为零,先del nums[i] 再向列表末尾添加0。
2023-05-23 21:25:32 47
原创 机试打卡 -03 最长连续序列(哈希表)
方法是Python的列表方法,用于对原列表进行排序。list.sort方法没有任何返回值。因为要保证下一个元素无论从哪一端接入该序列时,都可以立即知道当前序列的长度。函数在原有列表上直接排序,因此该方法使用完后原列表的顺序发生了改变。的排序方法,其时间复杂度为O (n*logn),而且这是一种。①set()函数将列表转换为集合,清除相同元素。而Python里的sort排序是一种名为。
2023-05-23 18:46:40 84
原创 机试打卡 -02 和为 K 的子数组(哈希表&前缀和)
哈希函数就是将key和value值对应起来的函数。在不同语言中,哈希函数的实现方式是不一样的,,这种数据结构提供了键(key)和值(value)的映射关系。枚举法,很容易想到↓。
2023-05-22 22:53:02 54
原创 机试打卡 -01 字母异位词(滑动窗口)
算法小白的代码如下↓虽然代码没有提交成功,但是需要注意几个点:①类中方法的参数在类的内部,使用 def 关键字来定义一个方法,与一般函数定义不同,类方法包含参数self, 且为第一个参数,self代表的是类的实例。fff②Python把字符串中的 old(旧字符串) 替换成 new(新字符串),如果指定第三个参数max,则替换不超过 max 次。返回值:得到一个新的字符串,不会改变原来的字符串。
2023-05-22 19:47:01 446
原创 CUMCM 2021-B:乙醇偶合制备C4烯烃(多元线性回归分析)
目录一、竞赛赛题二、问题(1)分析三、问题(2)分析四、多元线性回归分析(Stata)1.多元自变量的选定(1)乙醇转化率(2)C4烯烃选择性2.定量变量的描述性统计(Stata)3.异方差检验(1)散点图检验(2)BP检验(怀特检验的特例)(3)怀特检验(使用范围广,优先考虑)4.多重共线性检验(方差膨胀因子:VIF)5.向后逐步回归(1)乙醇转化率(2)C4烯烃选择性一、竞赛赛题二、问题(1)分析CUMCM 202.
2022-04-25 21:57:48 10873 1
原创 CUMCM 2021-B:乙醇偶合制备C4烯烃(2)
目录一、竞赛赛题二、问题(1)分析三、问题(2)分析探究不同催化剂组合及温度对乙醇转化率以及C4烯烃选择性大小的影响(1)Co负载量①Co负载量——乙醇转化率②Co负载量——C4烯烃选择性(2)Co/SiO2 和 HAP 装料比①Co/SiO2 和 HAP 装料比——乙醇转化率②Co/SiO2 和 HAP 装料比——C4烯烃选择性(3)乙醇浓度①乙醇浓度——乙醇转化率②乙醇浓度——C4烯烃选择性一、竞赛赛题二、问题(1)分析CUMCM
2022-04-20 19:56:04 8133 3
原创 CUMCM 2021-B:乙醇偶合制备C4烯烃(1)
一、竞赛赛题《附件1.xlsx》催化剂组合编号 催化剂组合 温度 乙醇转化率(%) 乙烯选择性(%) C4烯烃选择性(%) 乙醛选择性(%) 碳数为4-12脂肪醇选择性(%) 甲基苯甲醛和甲基苯甲醇选择性(%) 其他生成物的选择性(%) A1 200mg 1wt%Co/SiO2- 200mg HAP-乙醇浓度1.68ml/min 250 2.07 1.17 34.05 2...
2022-04-19 22:57:38 17549
原创 小偷-守卫博弈:“诡异”的纳什均衡
1.什么是小偷-守卫博弈?在博弈论中,有一个经典例题,叫做小偷-守卫博弈,其清晰简明的题干但耐人寻味的“诡异”结论让我对它产生了浓厚的兴趣。在本篇文章中,我将以一种感性且易于理解的逻辑顺序将这道经典题目详细展开,不涉及复杂的定理概念阐述与数学证明,对“纯路人”极度友好 ~~ “故事”如下:2.试着将信息用数学刻画出来 题干貌似很清晰简明,也很贴近生活,但是怎么去分析它呢,总不能“语文建模吧”(狗头)。我们可以尝试...
2022-04-01 18:17:39 5260
原创 元胞自动机:森林火灾模拟(Matlab:heatmap、colormap)
目录1.元胞自动机(Cellular Automation,CA)2.森林火灾3.伪代码4.元胞自动机模拟森林火灾(Matlab实现)(1)定义森林火灾函数①空位生长树木 (0 --> 1)②周围树木燃烧 (1-->-1)③燃烧树木清除(-1-->0)④雷电击中正常树木 (1-->-1)(2)定义主函数①遍历部分②趋势曲线绘制部分(3)执行命令5.森林火灾动态仿真1.元胞自动机(Cellular Automation,C
2022-03-26 17:40:51 2942 3
原创 元胞自动机:森林火灾模拟(Python:numpy、seaborn)
目录1.元胞自动机(Cellular Automation,CA)2.森林火灾3.伪代码4.元胞自动机模拟森林火灾(Python实现)(1)导入相关的库(2)定义森林火灾函数(Forest_Fire函数)①空位生长树木 (0 --> 1)②周围树木燃烧 (1 --> -1)③烧树木清除 (-1 --> 0)④雷电击中正常树木 (1 --> -1)(3)定义主函数(main函数)(4)执行命令5.森林火灾可视化呈现(1)森林火灾各
2022-03-25 21:50:47 9398 3
原创 美赛 10:预测模型、降维模型(十大模型篇)
目录九、预测模型1.灰色预测模型2.BP神经网络十、降维模型1.奇异值分解(Singular Value Decomposition,SVD)2.主成分分析(Principal Component Analysis,PCA)3.因子分析4.典型相关分析(Canonical Correlation analysis)九、预测模型预测模型主要涉及灰色预测模型、神经网络预测模型。1.灰色预测模型...
2022-02-11 22:09:37 11767 4
原创 美赛 8:模拟退火算法、遗传算法、粒子群算法(智能算法篇)
目录一、模拟退火算法(Simulated annealing algorithm,SA)1.SA的基本理论2.SA求解函数最值3.SA工具箱二、遗传算法(Genetic Algorithm,GA)1.GA的理论基础2.GA求解函数最值3.GA工具箱三、粒子群算法(Particle Swarm Optimization,PSO)1.PSO算法相关知识2.PSO算法设计3.PSO算法4.particleswarm粒子群函数5.PSO算法进阶应用(1)求
2022-02-10 12:48:07 6527
原创 美赛 7:图论模型、分类模型(十大模型篇)
目录五、图论模型1.迪杰斯特拉(Dijkstra)算法、贝尔曼-福特(Bellman-Ford)算法2.弗洛伊德(Floyd)算法六、分类模型1.逻辑回归2.Fisher线性判别分析五、图论模型图论模型主要解决最短路径问题,根据图的不同,对应采用迪杰斯特拉(Dijkstra)算法、贝尔曼-福特(Bellman-Ford)算法、弗洛伊德算法(Floyd)。Matlab代码:% Matlab中的图节点要从1开始编号s = [9 9 1 1 2 2 2 7
2022-02-09 17:49:35 4254
原创 美赛 6:相关性模型、回归模型(十大模型篇)
三、相关性模型 相关性模型涉及到两种最为常用的相关系数:皮尔逊person相关系数和斯皮尔曼spearman等级相关系数。它们可用来衡量两个变量之间的相关性大小,根据数值满足的不同条件,我们要选择不同的相关系数进行计算。1.皮尔逊相关系数...
2022-01-27 21:15:24 40092 1
原创 美赛 5:评价类模型、插值与拟合模型(十大模型篇)
目录一、评价类模型1.AHP(层次分析法)2.TOPSIS法(优劣解距离方法)二、插值与拟合模型1.插值算法2.拟合算法(cftool工具箱)一、评价类模型1.AHP(层次分析法) 最基础的评价类模型,通过打分解决评价类问题(两两比较,推算权重)。Matlab代码:disp('请输入判断矩阵A')A=input('A=');[n,n] = size(A);% 方法1:算术平均法求权重Sum_A = sum(A);SU...
2022-01-26 22:28:49 7958 1
原创 美赛 2:科学计算与MATLAB语言(基础篇)
一、初识MATLAB例:求 x^2-3*x+1=0 的根% 方法一:利用MATLAB多项式求根函数roots来求根p=[1,-3,1];x=roots(p)x=-5:0.1:5;y1=x.^2-3*x+1;for i = 1:size(x,2)-1 % if ((x(i)^2-3*x(i)+1) * (x(i+1)^2-3*x(i+1)+1))<0 if y1(i) * y1(i+1) <0 disp([...
2022-01-24 15:47:21 1172
原创 美赛 1:微分方程(建模篇)
一、美赛-MCM 题型总览上述内容转自作者:数学建模清风原文档:腾讯文档二、《高等数学》第七章:微分方程第一节 微分方程的概念第二节 可分离变量的微分方程第三节 齐次方程第四节 一阶线性微分方程第五节 可降阶的高阶微分方程第六节 高阶线性微分方程第七节 常系数齐次线性微分方程第八节 常系数非...
2022-01-22 02:00:18 5938
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人