自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 计算机网络学习笔记 计算机网络概述

文章目录前言三种交换方式1、电路交换(Circuit Switching)2、分组交换(Packet Switching)3、报文交换(Message Switching)三种交换方式的对比计算机网络体系结构常见的计算机网络体系结构计算机网络体系结构分层的必要性计算机网络体系结构分层思想举例计算机网络体系结构中的专用术语前言来源视频:计算机网络微课堂internet与Internet的区别internet(互联网或互连网)是一个通用名词,它泛指多个计算机网络互连而成的网络。在这些网络之间的通信协

2021-03-09 21:52:04 251

原创 计算机网络学习笔记 计算机网络概述

前言来源视频:计算机网络微课堂internet与Internet的区别internet(互联网或互连网)是一个通用名词,它泛指多个计算机网络互连而成的网络。在这些网络之间的通信协议可以是任意的。Internet(因特网)则是一个专用名词,它指当前全球最大的、开放的、由众多网络互连而成的特定计算机网络,它采用TCP/IP协议族作为通信的规则,其前身是美国的ARPANET。任意把几个计算机网络互连起来(不管采用什么协议),并能够相互通信,这样构成的是一个互连网(internet) ,而不是互联网

2021-03-09 21:46:30 223

原创 华为机试

题目描述开发一个坐标计算工具, A表示向左移动,D表示向右移动,W表示向上移动,S表示向下移动。从(0,0)点开始移动,从输入字符串里面读取一些坐标,并将最终输入结果输出到输出文件里面。输入:合法坐标为A(或者D或者W或者S) + 数字(两位以内)坐标之间以;分隔。非法坐标点需要进行丢弃。如AA10; A1A; %; YAD; 等。下面是一个简单的例子 如:A10;S20;W10;D30;X;A1A;B10A11;;A10;处理过程:起点(0,0)A10 = (-10,0

2021-03-08 17:20:46 194

原创 从零开始的 JSON 库(一)

前言JSON 是什么  JSON(JavaScript Object Notation)是一个用于数据交换的文本格式,现时的标准为ECMA-404。  虽然 JSON 源至于 JavaScript 语言,但它只是一种数据格式,可用于任何编程语言。现时具类似功能的格式有 XML、YAML,当中以 JSON 的语法最为简单。  例如,一个动态网页想从服务器获得数据时,服务器从数据库查找数据,然后把数据转换成 JSON 文本格式{ "title": "Design Patterns",

2021-03-05 17:21:51 317

原创 数据结构学习笔记:图论

前言  图论〔Graph Theory〕是数学的一个分支。它以图为研究对象。图论中的图是由若干给定的点及连接两点的线所构成的图形,这种图形通常用来描述某些事物之间的某种特定关系,用点代表事物,用连接两点的线表示相应两个事物间具有这种关系。  图论是一种表示 “多对多” 的关系  图是由顶点和边组成的:(可以无边,但至少包含一个顶点)一组顶点:通常用 V(vertex) 表示顶点集合一组边:通常用 E(edge) 表示边的集合图可以分为有向图和无向图,在图中:(v, w) 表示无向边,即 v

2021-02-21 21:41:43 357

原创 数据结构学习笔记:堆

前言  堆(heap)是一种优先队列(Priority Queue):特殊的“队列”,取出元素的顺序是依照元素的 优先权(关键字) 大小,而不是元素进入队列的先后顺序。优先队列的完全二叉树表示堆的两个特性结构性:用数组表示的完全二叉树有序性:任一结点的关键字是其子树所有结点的最大值(或最小值)最大堆(MaxHeap),也称“大顶堆”。根结点(亦称为堆顶)的关键字是堆里所有结点关键字中最大者最小堆(MinHeap),也称“小顶堆”。根结点(亦称为堆顶)的关键字是堆里所有结点关键字中最小者

2021-02-10 19:56:11 180

原创 Git学习笔记

文章目录前言什么是git1 版本库与文件操作1.1 创建版本库1.2 添加文件到Git仓库1.2.1 查看仓库状态1.2.2 查看修改内容1.2.3 提交修改1.3 版本回退1.4 工作区和暂存区1.5 撤销修改1.6 删除文件2 远程仓库2.1 添加远程库2.2 从远程库克隆3 分支管理3.1 分支与管理3.2 解决冲突远程仓库的使用5.1 使用GitHub5.2 使用码云前言  Git(读音为/gɪt/)是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。  Git

2021-02-05 19:56:59 79

原创 数据结构学习笔记:二叉搜索树

二叉搜索树定义:非空左子树的所有键值小于其根结点的键值非空右子树的所有键值大于其根结点的键值左右子树都是二叉搜索树#define ElementType inttypedef struct TNode *BinTree;typedef BinTree Position;struct TNode{ ElementType Data; BinTree Left,Right;};二叉搜索树操作的特别函数:Position Find(ElementType X,BinTree

2021-02-04 20:33:51 120

原创 数据结构学习笔记:树

前言  数据结构是数据对象,以及存在于该对象的实例和组成实例的数据元素之间的各种联系。这些联系可以通过定义相关的函数来给出。 ——Sartaj Sahni 《数据结构、算法与应用》  数据结构是 ADT(Abstract Data Type,数据抽象类型)的物理实现。 ——Clifford A.Shaffer 《数据结构与算法分析》  数据结构(data structure)是计算机中存储、组织数据的方式。通常情况下,精心选择的数据结构可以带来最优效率的算法。 ——中文维基百科  你在意我的

2021-01-31 18:53:26 175

原创 c++学习笔记:变量与基本类型

前言  从新开始学习c++,参考书籍为《C++ Primer》以及《Effective C++》《More Effiect C++》。  为什么狗狗可以无忧无虑一直开心呢?类型转换unsigned char c = -1;signed char c2=256;当我们赋给无符号类型一个超出它表示范围的值时,结果是初始值对无符号类型表示数值总数取模后的余数。例如,8比特大小的 unsigned char可以表示0至255 区间内的值,如果我们赋了一个区间以外的值,则实际的结果是该值对256取模后

2021-01-29 14:29:49 123

原创 刷题笔记:千奇百怪的排序算法(二)

前言  上一次说了一些常用的排序算法,接下来是一些古怪的排序相关的算法。  你准备在幻想的世界的待多久鸭。leetcode 215  第一时间我们应该想到的是先排序,再输出Kth大的元素,这显然是可行的,时间复杂度为O(nlogn)。仔细想想其实我们并不关注整个数组的第k-1大,k+1大…的数字,显然做了很多我们并不关心的操作。  快速选择一般用于求解k-th Element 问题,可以在O(n) 时间复杂度,O(1) 空间复杂度完成求解工作。快速选择的实现和快速排序相似,不过只需要找到第k 大

2021-01-28 20:32:32 146

原创 刷题笔记:千奇百怪的排序算法

前言  以下是一些最基本的排序算法。虽然在C++ 里可以通过std::sort() 快速排序,而且刷题时很少需要自己手写排序算法,但是熟习各种排序算法可以加深自己对算法的基本理解,以及解出由这些排序算法引申出来的题目。  只要你需要,我永远都在。快速排序(Quicksort)  快排在最糟糕得情况下时间复杂度是O(n²),平均的复杂度是O(nlogn),我们采用左闭右闭的二分写法。void quick_sort(vector<int> &nums, int l, int r)

2021-01-27 20:40:50 143

原创 图形学学习笔记三:着色(shading)

文章目录前言Blinn-Phong Reflectance Model 光照模型 着色模型Shading Frequencies 着色频率图形管线 Real-time Rendering PipelineTexture Mapping 纹理映射Barycentric coordinates 重心坐标→插值Application of TextureShadow mapping前言   着色(光照与基本着色模型)  着色和阴影无关  Shading:The process of applying

2021-01-25 19:25:47 921

原创 刷题笔记:动态规划(三)

前言  动态规划(Dynamic Programming, DP)中背包问题是一种组合优化的NP 完全问题:有N 个物品和容量为W 的背包,每个物品都有自己的体积w 和价值v,求拿哪些物品可以使得背包所装下物品的总价值最大。如果限定每种物品只能选择0 个或1 个,则问题称为0-1 背包问题;如果不限定每种物品的数量,则问题称为无界背包问题或完全背包问题。背包问题  我们可以用动态规划来解决背包问题。以0-1 背包问题为例。我们可以定义一个二维数组dp存储最大价值,其中dp[i][j]dp[i][j]d

2021-01-20 19:04:57 85

原创 图形学学习笔记:作业2

前言  这是计算机图形学games101课程作业。作业2简述在作业1的基础上栅格化一个三角形判断点是否在三角形内(提高)使用Supersampling抗锯齿作业2相关的知识光栅化算法:如何构建一个三角形的BoundingBoxDepth buffer(Z-Buffering)Antialising Supersampling(MSAA)作业2思路构建三角形最小包围矩形BoundingBox遍历BoundingBox其中所有点判断是否在三角形内若在点内,更新该点的Depth

2021-01-18 19:04:12 260 1

原创 刷题笔记:动态规划(二)

前言  上一篇主要是基本的一维和二维动态规划,这次是一些奇奇怪怪的动态规划。分割类型题leetcode 279  对于分割类型题,动态规划的状态转移方程通常并不依赖相邻的位置,而是依赖于满足分割条件的位置。我们定义一个一维矩阵dp,其中dp[i] 表示数字i 最少可以由几个完全平方数相加构成。在本题中,位置i 只依赖i−k2i - k^2i−k2 的位置,如i - 1、i - 4、i - 9 等等,才能满足完全平方分割的条件。因此dp[i] 可以取的最小值即为1 + min(dp[i-1], d

2021-01-17 20:49:20 87

原创 刷题笔记:动态规划(一)

前言  动态规划(Dynamic Programming, DP)在查找有很多重叠子问题的情况的最优解时有效。它将问题重新组合成子问题。为了避免多次解决这些子问题,它们的结果都逐渐被计算并被保存,从简单的问题直到整个问题都被解决。因此,动态规划保存递归时的结果,因而不会在解决同样的问题时花费时间......动态规划只能应用于有最优子结构的问题。最优子结构的意思是局部最优解能决定全局最优解(对有些问题这个要求并不能完全满足,故有时需要引入一定的近似)。简单地说,问题能够分解成子问题来解决。  通俗一

2021-01-15 16:49:48 101

原创 刷题笔记:双指针

前言  双指针主要用于遍历数组,两个指针指向不同的元素,从而协同完成任务。也可以延伸到多个数组的多个指针。若两个指针指向同一数组,遍历方向相同且不会相交,则也称为滑动窗口(两个指针包围的区域即为当前的窗口),经常用于区间搜索。若两个指针指向同一数组,但是遍历方向相反,则可以用来进行搜索,待搜索的数组往往是排好序的。  I act like i don't want anything,because I never got anything I wantedleetcode 167  因为数组

2021-01-14 16:25:47 163

原创 刷题笔记:贪心算法

前言  顾名思义,贪心算法或贪心思想采用贪心的策略,保证每次操作都是局部最优的,从而使最后得到的结果是全局最优的。leetcode 455  因为饥饿度最小的孩子最容易吃饱,所以我们先考虑这个孩子。为了尽量使得剩下的饼干可以满足饥饿度更大的孩子,所以我们应该把大于等于这个孩子饥饿度的、且大小最小的饼干给这个孩子。满足了这个孩子之后,我们采取同样的策略,考虑剩下孩子里饥饿度最小的孩子,直到没有满足条件的饼干存在。class Solution {public: int findContent

2021-01-11 17:21:25 105

原创 刷题笔记:二分法

前言  二分查找算法是一个基本但用处十分广泛的算法,但要写出一个没有bug的二分查找算法也不容易,《编程珠玑》一书中提到仅有百分之十的人可以第一次就写出没有bug的二分查找算法,主要原因在于寻找中间区间时数据有可能溢出,以及区间的选择不正确导致死循环,数组越界等等。  具体到代码上,我认为需要考虑两个最主要的问题:左闭右开,还是左闭右闭(熟练使用一种)如果区间只剩下一个数或者两个数,自己的写法是否会陷入死循环leetcode 69class Solution {public:

2021-01-09 19:05:42 105

原创 图形学学习笔记三:光栅化

文章目录一、光栅化Viewport transform标题如何在像素点上表示一幅图形一、光栅化  在学习完之前的变换之后,已经能使用我们放置的相机对[−1,1]3[-1,1]^3[−1,1]3中的物体进行成像,接下来要做的就是将成像的结果呈现在屏幕上,也就是光栅化。Viewport transform如何将[−1,1]3[-1,1]^3[−1,1]3的正方体转化到屏幕忽视z轴的数据转化到xy平面空间:[−1,−1]2[-1,-1]^2[−1,−1]2到[0,width]×[0,height][

2020-12-26 21:48:05 293

原创 图形学学习笔记二:观测变换

文章目录一、旋转三维空间中绕坐标轴旋转三维空间中绕任意轴旋转二、观测变换(View/Camera Transformation)1 定义的三个要素2 进行视图变换3 相机转换步骤投影变换(Rrojection Transformation)1 投影变换的分类2、正交投影( 一 )3D化2D方法:( 一 )3D方法:三 透视投影如何进行透视投影?(难点)一、旋转三维空间中绕坐标轴旋转Rx(α)=(10000cos⁡α−sin⁡α00sin⁡αcos⁡α00001)Ry(α)=(cos⁡α0sin⁡α

2020-12-22 21:42:59 519

原创 图形学学习笔记一:变换矩阵

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、2维线性变换1.1缩放(scaling)1.2镜像(Refection Matrix)1.3剪切(shearing)1.4旋转(rotation)二、齐次坐标(Homogeneous Coordinates)三、变换的组合(composing)四、3D变换前言变换矩阵 (Transformation Marices)是图形学中非常重要的一个概念,物体的一切运动都可以通过变换矩阵实现一、2维线性变换x′=ax+by

2020-12-13 22:36:40 1007

原创 01背包问题

01背包问题01背包问题及状态压缩转自https://www.cnblogs.com/kkbill/p/12081172.html

2020-09-12 13:04:45 68

原创 OpenCV学习(二)Mat对象

Mat对象与IplImage对象Mat对象 :OpenCV2.0之后引进的图像数据结构、自动分配内存、不存在内存泄漏的问题,是面向对象的数据结构。分了两个部分,头部与数据部分IplImage 是从2001年OpenCV发布之后就一直存在,是C语言风格的数据结构,需要开发者自己分配与管理内存,对大的程序使用它容易导致内存泄漏问题Mat对象1. Mat对象的构造函数构造函数(部分...

2019-02-06 20:26:17 179

原创 opencv学习(一)矩阵的掩膜操作

什么是掩膜首先我们从物理的角度来看看mask到底是什么过程。在半导体制造中,许多芯片工艺步骤采用光刻技术,用于这些步骤的图形“底片”称为掩膜(也称作“掩模”),其作用是:在硅片上选定的区域中对一个不透明的图形模板遮盖,继而下面的腐蚀或扩散将只影响选定的区域以外的区域。图像掩膜与其类似,用选定的图像、图形或物体,对处理的图像(全部或局部)进行遮挡,来控制图像处理的区域或处理过程。掩膜的用法...

2019-02-03 13:34:23 259

空空如也

空空如也

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

TA关注的人

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