- 博客(435)
- 资源 (5)
- 收藏
- 关注

原创 大家好,欢迎来到我的CSDN博客!
你好,欢迎来到我的CSDN博客!Welcome to my CSDN blog!我姓邵,目前在厦门大学读计算机专业。作为一名零基础的编程学习者,我决定创建自己的CSDN博客以记录自己的学习之路。路漫漫其修远兮,吾将上下而求索。我期待着能在CSDN上遇到一群志同道合的编程爱好者,当然,我也期待着能有大佬提出自己的宝贵意见。相遇是缘,很高兴认识你!...
2021-02-05 19:24:37
222
原创 Mac设置用VScode打开文件夹的快捷方式
在Mac系统上,选中一个目录,右键菜单并没有“通过Code打开”这个操作,不过我们可以通过Automator自己添加这个操作。现在右键选中一个文件夹后,点击“快速操作”,即可“Open With VSCode”。保存为 “open with VScode” 即可。
2022-11-13 17:25:25
2520
原创 全球变暖(Flood-Fill算法)
若该连通块的单元数目和与海相邻的单元数目相等,说明该连通块的所有单元均与海相邻,该连通块会被淹没。题目大意给定一个网格图,求会被“淹没”的连通块的数目。本题的难点如何判断一个连通块是否会被淹没?常用于由一个点遍历该点所在的整个连通块。...
2022-07-14 21:16:41
309
原创 JavaScript事件
JavaScript的代码一般通过事件触发。可以通过函数为元素绑定事件的触发函数。鼠标事件名称内容鼠标左键点击鼠标左键双击鼠标右键点击鼠标按下,包括左键、滚轮、右键鼠标弹起,包括左键、滚轮、右键键盘事件名称内容某个键是否被按住,事件会连续触发(类似于mousedown)某个按键是否被释放(类似于mouseup)紧跟在keydown事件后触发(类似于click)。只有按下字符键时触发。属性返回按的
2022-07-11 14:15:27
266
原创 完全二叉树的每层权值
给定一个下标从1开始的一维数组,代表一颗完全二叉树。问题就是求二叉树中每层结点的权值之和。本题的关键即:如何快速枚举完全二叉树的每一层?令根结点位于第1层,则第ddd层的首元素在数组中的下标为:2d−12^{d-1}2d−1,第ddd层的元素个数为:2d−12^{d-1}2d−1。...
2022-07-07 22:03:58
684
原创 长度常用单位
CSS中的长度单位可以分成 2 种:相对和绝对。像素,它告诉浏览器应该如何调整元素的大小和位置。绝对单位与长度的物理单位相关。 例如:和 分别代表着英寸和毫米。绝对长度单位会接近屏幕上的实际测量值,不过不同屏幕的分辨率会存在差异,这就可能会造成误差。...
2022-07-07 20:33:15
259
原创 Git基础
关于版本控制:所有的版本控制系统,其实只能跟踪文本文件的改动,比如TXT文件、程序代码等等,Git也不例外。版本控制系统可以告诉你每次的改动,比如在第5行加了一个单词“Linux”,在第8行删了一个单词“Windows”。而图片、视频这些二进制文件,虽然也能由版本控制系统管理,但没法跟踪文件的变化,只能把二进制文件每次改动串起来,也就是只知道图片从100KB改成了120KB,但到底改了啥,版本控制系统不知道,也没法知道。注意:Microsoft的Word格式是二进制格式,因此版本控制系统是没法跟踪Wo
2022-06-28 21:11:10
609
原创 走 迷 宫
题目大意:给定一个N×MN\times MN×M字符矩阵描述的迷宫(‘’表示墙壁,‘’表示可以通行),保证有且仅有一个起点SSS和终点EEE。求从起点到终点的最短距离,若无法到达则输出“oop!”。小技巧:......
2022-06-25 22:15:14
221
原创 “热帖”统计
朴素做法枚举所有长度为DDD的时间段,统计在该时间段内,每个帖子收到的赞数,从而得出“热帖”。TLE注意到:第iii个时间段与第i+1i+1i+1个时间段中有许多记录是相同的。因此采用双指针来遍历所有记录,维护指针j,ij,ij,i使其为长为DDD的时间段的两端。注意:由于按序枚举,iii指针的每次移动都会使某个帖子的点赞数增加,因此 iii指针的移动是产生“热帖”的直接导引,即最新产生的“热帖”一定是iii所指向的帖子,因此每次只需判断iii指针所指的帖子是否为热帖即可。...
2022-06-25 20:02:04
293
原创 点的螺旋距离
思路:对于点A(x,y)A(x,y)A(x,y),首先判断出该点属于上下左右哪个区域再求出该点所在“射线”的端点B(a,b)B(a,b)B(a,b)(找出端点坐标与(x,y)(x,y)(x,y)之间的关系)找规律,求出BBB到原点的距离∣BO∣|BO|∣BO∣求∣AO∣|AO|∣AO∣转化为:∣AO∣=∣BO∣+∣AB∣|AO|=|BO|+|AB|∣AO∣=∣BO∣+∣AB∣......
2022-06-23 19:51:01
240
原创 坐标 转化
给定一个长度为A×BA\times BA×B的序列,将其存储为二维数组(从下标1开始存储),序列中第(i−1)×B+(j−1)+1(i - 1)\times B+(j-1)+1(i−1)×B+(j−1)+1个元素为:若从下标0开始存储,则序列中第 i×B+j+1i\times B+j+1i×B+j+1 个元素为:给定一个长度为A×B×CA\times B\times CA×B×C的序列,将其存储为三维数组(从下标1开始存储),序列中第(i−1)×BC+(j−1)×C+(k−1)+1(i - 1)\ti
2022-06-21 20:52:32
150
原创 矩形覆盖面积
题目大意: 在标准直角坐标系中,若干个矩形区域被涂上了油漆(注意:矩形间可能重叠)。矩形的表示方式为(x1,y1,x2,y2)(x_1,y_1,x_2,y_2)(x1,y1,x2,y2),代表矩形的两个对角点的坐标。求被油漆覆盖的区域一共有多大面积。S1=(x2−x1)⋅h1S2=(x3−x2)⋅h2⋮S_1=(x_2-x_1)\cdot h_1\\S_2=(x_3-x_2)\cdot h_2\\ \vdotsS1=(x2−x1)⋅h1S2=(x3−x2)⋅h2⋮S总=S1+S2+
2022-06-20 17:38:05
1235
1
原创 算法的摊还分析
在摊还分析 (amortized analysis) 中,研究的是所执行的所有操作的平均时间(摊还代价),将其作为评价的标准。聚合分析(aggregate analysis) 是先确定一个含nnn个操作的操作序列总代价的上界T(n)T(n)T(n),从而每个操作的平均代价为T(n)n\frac{T(n)}{n}nT(n),将其作为每个操作的摊还代价,所有操作具有相同的摊还代价。例1:栈操作定义一个具有以下3种操作的栈:对一个空栈进行一个由nnn个 push、pop、multipop操作组成的操作序列,
2022-06-05 15:15:38
186
原创 迭代收敛的加速方法
设某种方法得到的迭代序列{xk}\{x_k\}{xk}中相邻2个近似值的误差之比近似为定值LLL,则x1−x∗≈L(x0−x∗)x2−x∗≈L(x1−x∗)x_1-x^*\approx L(x_0-x^*)\\x_2-x^*\approx L(x_1-x^*)x1−x∗≈L(x0−x∗)x2−x∗≈L(x1−x∗)x1−x∗x0−x∗≈x2−x∗x1−x∗\frac{x_1-x^*}{x_0-x^*}\approx\frac{x_2-x^*}{x_1-x^*}x0−x∗x1−x∗≈x1−x
2022-06-04 11:31:04
877
原创 快速排序与归并排序(算法分析)
文章目录快速排序性能分析随机化快速排序快速排序的平均时间复杂度为O(nlgn)O(n\lg n)O(nlgn),且其中隐含的常数因子非常小;最坏条件下的时间复杂度为O(n2)O(n^2)O(n2)。快速排序是基于 分治 的思想:分解:数组A[l∼r]A[l\sim r]A[l∼r]被划分为3部分:两个(可能为空)子数组A[l ∼ k−1]A[l\ \sim\ k-1]A[l ∼ k−1]、A[k+1 ∼ r]A[k+1\ \sim\
2022-05-31 20:32:55
160
原创 决策树与随机森林
决策树若要生成决策树,首先根据相似性把所有数据点分为两组,然后 针对每组重复这个二分过程。每一层叶节点都比上一层包含更少的数据点,但同质性更高。这个反复拆分数据以得到同质组的过程被称为递归拆分。虽然决策树容易解释,但存在如下缺点:不稳定决策树是通过把数据点分组生成的,数据中的细微变化可能影响拆分结果,并导致生成的决策树截然不同。此外每次拆分数据点时都力求找到最佳拆分方式,这很容易产生过拟合问题。不准确一开始就使用最佳二元选择题拆分数据点,并不能保证结果最准确。有时先用不太有效的分法反而会
2022-05-29 16:31:12
349
原创 支持向量机SVM
SVM的主要目标是得到一条能用于分组的最佳分界线。能用于分组的分界线可能有多条:如何找出最佳的分界线?首先需要从一组中找出距离另一组最近的外围数据点,然后在两组的外围数据点之间画出最佳分界线。根据数据点落在决策边界的哪一边对其进行分类。由于这些外围数据点在寻找最佳分界线的过程中起了支持作用, 因此它们叫作支持向量。SVM的一个优点是计算速度很快,它仅依靠外围数据点就能 找到决策边界。注意到:决策边界对支持向量的位置比较敏感,选取不同的数据点作为训练数据,得到的相应支持向量的位置也不同。
2022-05-29 16:11:22
749
原创 K最近邻算法
kkk最近邻算法根据周围数据点的类型对某个数据点进行分类。例如:如果一个数据点周围有4个红点和1个黑点,那么根据少数服从多数的原则,这个数据点很可能就是红色的。参数kkk表示选取的周围数据点的个数(在上面的例子中,k=5k=5k=5 )。选择kkk值的过程叫作参数调优,它对预测的准确度起着至关重要的作用。如果kkk值太小,数据点只与最近的“邻居”匹配,并且随机噪声所产生的误差也会被放大如果kkk值太大,数据点会尝试与更远的“邻居”匹配,其中隐含的模式会被忽略只有当kkk值恰到好处时,数据点才会
2022-05-29 15:42:16
837
原创 路径的瓶颈值
已知树(或图)中每条边都有一个属性www,对于两点间s,vs,vs,v的一条路径s⇝vs\leadsto vs⇝v,定义该路径的瓶颈值为:f(s,v)=min{w1,w2,...,wt}f(s,v)=\min\{w_1,w_2,...,w_t\}f(s,v)=min{w1,w2,...,wt}当指定了树的根结点(或图的源点)sss,则sss到点vvv的 (边数)最短路径的瓶颈值 可以记为vvv的一个属性ggg:g(v)=f(s,v)g(v)=f(s,v)g(v)=f(s,v)利用BFS可以快速求
2022-05-28 22:51:09
174
原创 C++的取模运算
操作数必须为整型对于负数9 % 10 = 9-9 % 10 = -99 % -10 = 9-9 % -10 = -9可见对于运算 a % b=ca\ \%\ b=ca % b=c,满足:∣c∣=∣a∣ % ∣b∣|c|=|a|\ \%\ |b|∣c∣=∣a∣ % ∣b∣,ccc的符号与aaa的符号相同。b=0b=0b=0的结果是不确定的,会导致运行时错误...
2022-05-27 19:57:41
1730
1
原创 K均值聚类
在确定了所分的类数KKK之后,每个类中成员是在迭代过程中确定的。算法步骤:初始时先随意指定KKK个类心(“伪中心点”)。在每次迭代中:枚举每个结点,根据该点到KKK个类心的距离,判断该点属于哪一类将所有结点成功分到KKK个类求出新的每个类的类心不断迭代,直到类心不再发生改变。局限性:每个数据点只能属于一个类。数据点可能恰好位于多个类中间,无法通过KKK均值聚类方法确定它应该属于哪个类。类被假定是正圆形的。查找距离某个类心最近的数据点,这一迭代过程类似于缩小类的半径,因此最终得到的
2022-05-25 21:22:15
278
原创 机器学习基础(2)
数据科学研究的4个主要步骤:处理和准备待分析的数据根据研究需求挑选合适的算法对算法的参数进行调优,以便优化结果创建模型,并比较各个模型,从中选出最好的一个文章目录数据常见算法参数调优训练与测试模型评价模型数据表格是最常用的数据表示形式,表格中的每一行就是一个数据点,代表一个观测结果;每一列是一个变量(也叫属性、特征或维度),用来描述数据点。变量可以分为4类:二值变量最简单的变量类型,只有两种可能的值(“是否买鱼”)。分类变量当某信息可以取两个以上的值时,便可以使用分类变量来表
2022-05-25 20:21:40
278
原创 向量序列与矩阵序列的极限
向量序列的极限向量x⃗(k)=(x1(k),x2(k),...,xn(k))T∈Rn\mathbf{\vec{x}}^{(k)}=(x_1^{(k)},x_2^{(k)},...,x_n^{(k)})^T\in\mathbb{R}^nx(k)=(x1(k),x2(k),...,xn(k))T∈Rn,对于向量序列{x⃗(k)}\{\mathbf{\vec{x}}^{(k)}\}{x(k)},若存在c⃗=(c1,c2,...,cn)T\mathbf{\vec{c}}=(c_1,c_2,...,c_n)^
2022-05-25 17:03:35
617
原创 迭代法解线性方程组
对于线性方程组 x⃗=Bx⃗+f⃗\vec{x}=B\vec{x}+\vec{f}x=Bx+f,按下列公式迭代构造向量序列:x⃗(k+1)=Bx⃗(k)+f⃗\vec{x}^{(k+1)}=B\vec{x}^{(k)}+\vec{f}x(k+1)=Bx(k)+f产生的向量序列 x⃗(k)\vec{x}^{(k)}x(k) 是否一定逐步逼近方程组的解 x⃗∗\vec{x}^*x∗ 呢?答案是不一定。引进误差向量 ε⃗(k+1)=x⃗(k+1)−x⃗∗\vec{\varepsilon}^{(k+1)} .
2022-05-23 14:12:10
231
原创 线性方程组的误差
病态方程组求解线性方程组Ax⃗=b⃗A\vec{x}=\vec{b}Ax=b时,由于A,b⃗A,\vec{b}A,b是由计算或观察得来,它们的误差会对最终解x⃗\vec{x}x产生影响。特别是,当线性方程组为病态方程组时,A,b⃗A,\vec{b}A,b的小误差可能会导致解出的x⃗\vec{x}x与真实值相差很大。注意:矩阵的“病态”性质是矩阵本身的性质。条件数对于非奇异阵AAA,定义AAA的条件数为:cond(A)v=∣∣A−1∣∣v⋅∣∣A∣∣vcond(A)_v=||A^{-1}||_
2022-05-22 16:06:29
436
原创 向量范数与矩阵范数
向量范数向量范数是对 Rn\mathbb{R^n}Rn(nnn维向量空间) 中向量的“大小”进行衡量,是三维欧式空间中向量长度概念的推广。定义:若向量x⃗∈Rn\vec{x}\in\mathbb{R^n}x∈Rn的某个实值函数 N(x⃗)=∣∣x⃗∣∣N(\vec{x})=||\vec{x}||N(x)=∣∣x∣∣ 满足条件:∣∣x⃗∣∣≥0||\vec{x}||\ge 0∣∣x∣∣≥0(等号成立⟺x⃗=0⃗\Longleftrightarrow \vec{x}=\vec{0}⟺x=0)∣∣cx⃗
2022-05-22 15:35:11
153
原创 Python 批量修改文件名
import osimport randompath = '/Users/shaoyihao/Desktop/test'l = list(os.listdir(path))# print(l)num = list(range(len(l)))random.shuffle(num)for i, j in zip(l, num): oldname = path + os.sep + i # 原文件的绝对路径 newname = path + os.sep + str(j)
2022-05-22 10:49:07
120
原创 JavaFX03:scene
stage上面要有scene,scene上面要有node(button就是一种node)。默认情况下node会占满所在scene的范围。stage.setHeight(400);stage.setWidth(400);Button button = new Button("button");button.setPrefHeight(20);button.setPrefHeight(20);button.setCursor(Cursor.HAND); //设置光标移到它身上时的光标样式G.
2022-05-19 13:37:53
470
原创 JavaFX02:Platform与Screen
在程序空闲时运行一些功能:Platform.runLater(new Runnable(){ @override public void run() { ... }})设置关闭所有窗口后程序仍不退出:Platform.setImplicitExit(false); //要想使程序退出,需要调用:Platform.exit();判断程序运行的机器是否支持一些功能(特性):boolean f = Platform.isSupported(...)...
2022-05-19 10:56:22
307
原创 JavaFX01:stage
最简单的一个JavaFX程序package com.example.javafx_test1;import javafx.stage.Stage;import javafx.application.Application;public class HelloApplication extends Application{ //继承Application类 public void start(Stage stage) { //必须要实现一个start方法 stage.sho
2022-05-18 23:00:48
313
原创 正则表达式
正则表达式是一种特殊的模式串,用于匹配一组字符串。首次出现在Ken Thompson编写的QED文本编辑器中。文章目录基本语法常用技巧基本语法用 字符串字面值(string literal) 来匹配目标字符串使用 字符集(character set) 进行匹配也可以对字符集进行进一步的列举:正则表达式将方括号[]视为特殊的元字符(metacharacter),在正则表达式中有特殊含义的字符,因此方括号不参与匹配。每次只会与一个字符进行匹配。使用字符组简写式(charact
2022-05-18 14:08:26
156
原创 机器学习基础
预测问题与分类问题机器学习主要基于对大量数据的分析,用于解决以下类型的问题:预测问题预测问题是指:通过给定的输入,得到与目标尽可能接近的输出这类问题。也称为回归问题。解决该问题的基本过程为:为问题建立合适的函数模型,通过“学习”得到模型的最佳参数,最终得到“能根据输入向量,得到和目标向量尽可能接近的输出向量”这样一个训练好的模型。所谓学习,就是指:为了使输入得到的结果与目标尽可能接近,使用训练数据对参数进行调整的过程。分类问题解决分类问题的过程就是从大量数据中总结规律和规则,从而发现模
2022-05-17 22:38:40
158
原创 《程序员的数学》笔记
将指数aka^kak理解为,每当指数kkk减1,数值就变为原来的1a\frac{1}{a}a1;每当指数kkk加1,数值就变为原来的aaa倍。0经常起到占位的作用,使问题简单化。除法就像分组,根据被除数的余数来确定它属于哪个组。余数可以将较大的数字以O(1)O(1)O(1)进行分组。奇偶校验数学归纳法可以类比为“多米诺骨牌”,通常分为2步:证明P(0)P(0)P(0)成立(让第一个多米诺骨牌倒下)证明任意k>0k>0k>0时, 若P(k)..
2022-05-16 23:12:43
146
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人