自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 登录系统:如何设计第三方授权数据库

第三方登录(Third-party login)是指在一个网站或应用程序中,允许用户使用另一个网站或服务的账户进行身份验证和登录的过程。这种登录方式可以简化用户注册和登录过程,提高用户体验,因为用户无需为每个网站或应用程序创建新的账户和密码。第三方登录通常使用 OAuth、OpenID Connect 等授权协议来实现。这些协议允许用户在不泄露密码的情况下,将他们在其他网站或服务上的身份信息共享给请求登录的网站或应用程序。谷歌(Google)脸书(Facebook)微软(Microsoft)

2023-10-20 11:15:26 315

原创 CSS:padding,margin的区别

因此,尽管我们设置了 padding 和 border,div 元素的实际尺寸仍然为 200px x 100px,而不是像之前那样增加。padding 会影响元素的实际尺寸,因为它增加了元素内容与边框之间的空间。实际尺寸是由元素的内容尺寸、padding、边框(border)和外边距(margin)组成的。因此,添加了 padding 和 border 后,div 元素的实际尺寸为 150px x 100px。margin:用于控制元素之间的外部间距,即元素与相邻元素之间的距离。

2023-10-20 10:38:06 228

原创 OAuth2 总结与实践

OAuth2

2023-10-19 10:26:38 76

原创 Gitflow分支管理

分支创建,用于为线上产品打补丁。当一个功能完成后,它会被合并回。上进行bug修复,等一切就绪后,将。分支打一个版本标记。

2023-07-30 22:24:33 121

原创 API设计:筛选,排序和翻页

RESTful api:筛选,排序和翻页最佳实践

2023-05-06 12:12:55 156

原创 UVa 1368 - DNA Consensus String (DNA序列)

UVa 1368 - DNA Consensus String (DNA序列)

2022-12-13 14:19:00 97

原创 UVa 232 - 纵横字谜的答案 (Crossword Answers)

uva232题解,数组和字符串

2022-12-12 12:25:50 156

原创 《如何有效阅读一本书》读书笔记

本书按读书的五个阶段组织文章,依次讲了选书、购书、读书、记录和活用。最后介绍了让读书体验更充实的小19个技巧,推荐了26款小工具。

2022-12-11 22:22:39 144

翻译 DOM API是什么

多年来,我们一直依赖第三方 JavaScript 库(例如 jQuery)来为 Web 编写 JavaScript。 然而,近年来,DOM API 有了很大的发展,因此使用原生 JavaScript 向网页添加动态功能对开发人员来说变得越来越容易。本文是对每个现代 Web 浏览器中内置的 DOM API 的高级概述。 我们将研究 DOM API 是什么,它与 JavaScript 的关系,以及如何使用它为 Web 编写 JavaScript。什么是DOMDOM 代表文档对象模型( Document O

2022-05-09 23:16:10 633

原创 C++enum枚举类型用法

枚举C++的enum工具提供了另一种创建符号常量的方式,这种方式可以 、代替const。它还允许定义新类型,但必须按严格的限制进行。使用enum的句法与使用结构相似。例如:enum color {red, green, blue};这条语句完成两项工作。让color成为新类型的名称;color被称为枚举 (enumeration),就像struct变量被称为结构一样。 将red、green、blue等作为符号常量,它们对应整数值0~2。这 些常量叫作枚举量(enumerator)。可以用枚

2022-04-20 23:26:28 6034

原创 C++union共用体用法

共用体共用体(union)是一种数据格式,它能够存储不同的数据类型, 但只能同时存储其中的一种类型。也就是说,结构可以同时存储int、 long和double,共用体只能存储int、long或double。共用体的句法与结构 相似,但含义不同。例如,union types { int i; long long ll; double d;};types x;x.i = 10; // 存储intcout << x.i;x.d = 10.2; // 存储double,int的值

2022-04-20 23:06:04 720

原创 C++struct结构体用法

结构体创建结构包括两步。 首先,定义结构描述—它描述并标记了能够存储在结构中的各种数据类型。然后按描述创建结构变量(结构数据对象)。struct employee { // 结构体声明 char name[20]; // 成员变量 int age; float salary;};// 定义结构后,便可以创建这种类型的变量了:struct employee bob;// 在c++中使用结构体时,可以省略struct关键字employee jack; // 可以省略struct,但是在

2022-04-20 22:55:26 1709

原创 C++string字符串初始化与使用

字符串C风格字符串C-风格字符串具有 一种特殊的性质:以空字符(null character)结尾,空字符被写作\0, 其ASCII码为0,用来标记字符串的结尾。例如,char dog[8] = {'b', 'e', 'a', 'u', 'x', ' ', 'i', 'i'}; // 不是字符串char cat[8] = {'f', 'a', 't', 'e', 's', 's', 'a', '\0'}; // 是字符串更好的初始画字符串的方法:使用字符串常量char bird[11] =

2022-04-20 10:45:55 6876 1

原创 C++array数组用法

数组数组声明要创建数组,可使用声明语句。数组声明应指出以下三点:存储在每个元素中的值的类型;数组名;数组中的元素数。声明数组的通用格式如下:typeName arrayName[arraySize];表达式arraySize指定元素数目,它必须是整型常数(如10)或const 值,也可以是常量表达式(如8 * sizeof(int)),即其中所有的值在编 译时都是已知的。具体地说,arraySize不能是变量,变量的值是在程序 运行时设置的。然而,使用new运算符可避开这种限制。举例

2022-04-19 23:29:36 1935

原创 Mac 快速配置 Visual Studio Code 的 C++调试环境

点击菜单Terminal > Config Default Build Task … 然后选择C/C++: clang++build active file,生成 tasks.json 文件点击菜单Run > Add Configuration … 会生成一个launch.json 的文件修改externalConsole为true,这样才可以输入内容preLaunchTask的值要与tasks.json的label保持一致// tasks.json{ { "ver..

2022-04-17 15:43:09 2422

原创 2. 离散化

离散化,把无限空间中有限的个体映射到有限的空间中去,以此提高算法的时空效率。概述离散化本质上可以看成是一种哈希,是程序设计中一个常用的技巧,它可以有效的降低时间复杂度。其基本思想就是在众多可能的情况中,只考虑需要用的值。离散化可以改进一个低效的算法,甚至实现根本不可能实现的算法。通俗的说,离散化是在不改变数据相对大小的条件下,对数据进行相应的缩小。例如:原数据:1,999,100000,15;处理后:1,3,4,2;原数据:{100,200},{20,50000},{1,400};处理后:{.

2022-02-28 16:54:54 138

原创 动态规划【数据结构与算法】

这里写自定义目录标题动态规划什么是动态规划动态规划解题四步曲动态规划实战爬楼梯题解思路Java代码思考动态规划什么是动态规划动态规划(Dynamic Programming),简称DP,使用动态规划可以有效解决重叠子问题。动态规划解题四步曲确定dp数组以及下标的含义确定递推公式dp数组如何初始化确定遍历顺序动态规划实战爬楼梯力扣题目链接假设你正在爬楼梯。需要 n 阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?示例 1:输入:n

2022-02-19 16:28:27 344

原创 ESLint Prettier 代码规范

ESlint Pretter

2022-01-26 16:31:13 840

原创 广告术语(持续更新...)

Impressions(展示次数)每当您的广告在搜索结果页或广告网络中的其他网站上显示时,就计为一次展示。Reach(覆盖人数)至少查看广告一次的用户数量。覆盖人数与展示次数不同,后者可能存在同一用户多次浏览广告的情况。Clicks(点击次数)当用户点击您的广告(例如文字广告的蓝色标题)时,就会记录一次点击。CTR(Clickthrough rate,点击率)一个比率,表示在看过您广告的用户中有多少用户最后点击了广告。计算公式:点击率 = 点击次数 / 展示次数。CPM(cost per

2021-06-17 11:49:47 2475

原创 模型与建模

模型模型是对现实世界的抽象,其具体呈现方式可以是数学式子、画图、表格、粘土作品、木头雕刻 …模型的第一个价值:作为沟通工具。不管是实际的事物还是你脑海中的想法,通常都非常复杂和模糊,难以让人理解。透过模型或许可以解决这个问题。地球仪就是很有效的沟通模型,他帮助我们理解各国疆域和地理位置(如果单靠描述是很难讲清楚的,这时模型使沟通过程简单有效)。模型的第二个价值:有助于设计、实验与改进。实物的变化,成本高,模型的变化,容易多了。透过模型的调整进而可以应用到现实世界上。解读:模型通常被描述为世界的简化。

2021-06-16 11:04:25 1082

原创 数据抽取常见的几种模式

常见的数据抽取模式有4种:全量覆盖抽取,全量追加,增量和增量滚动。全量覆盖例子:假设第一天源头库有100条数据,第二天源头库新增10条,源头库即110条。那么第一天抽取:目标库100条,第二天抽取会删除昨天抽取的100条,然后重新抽取,此时目标库也是110条。优点:理解简单,数据质量好,适用于小数据量的表。缺点:大数据量的时候,占用资源,且抽取速度慢。结论:全量覆盖抽取,抽取的时刻始终和源库数据保持一致。覆盖是一个先删除后拷贝的过程。全量追加例子:第一天源头库有100条数据,第二天源头库新增1

2021-06-15 17:55:13 4355 1

空空如也

空空如也

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

TA关注的人

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