自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(158)
  • 资源 (8)
  • 收藏
  • 关注

原创 JavaScript编程精解(第三版)第五章习题解答

JavaScript编程精解(第三版)第五章习题

2022-07-02 13:13:57 805

原创 JavaScript编程精解(第三版)第四章习题解答

JavaScript编程精解(第三版)第四章习题解答代码。

2022-07-02 00:03:55 717

原创 分布式、集群式、负载均衡的区别和联系

1、分布式:一个系统拆成多个子系统,部署在不同服务器。每个服务器只做一小块。功能拆分。2、集群式:每个服务器提供的服务一样,靠数量多取胜。3、负载均衡:把过来的请求,分发给不同的服务器去处理。类似导流器。例如,一个购物网站,现在有10台服务器:1、部署到10台服务器上,每台部署一份相同代码。集群式。2、商品展示功能部署在一台服务器,购物车在一台服务器,支付在一台服务器……分布式。3、上面这10台服务器,万一每次只访问1台咋办?负载均衡。把过来的请求均匀的(或加权的)分发到其他9台上(1台做分发)

2021-03-19 13:34:58 2890 1

原创 关于Redis中rehash的负载因子问题

1. Redis中rehash概念Redis 的字典使用哈希表作为底层实现, 一个哈希表里面可以有多个哈希表节点, 而每个哈希表节点就保存了字典中的一个键值对。哈希表中的键值对随着不断进行的操作增加或减少,为了将哈希表的负载因子维持在较为合理的范围内,程序需对哈希表的大小进行相应的扩展或者收缩,而rehash(重新散列)操作就可以完成这项工作。2. 负载因子的概念Redis中,loader_factor:哈希表中键值对数量 / 哈希表长度。当hash表中键值对数量很少是,负载因子也会很小。当负载

2021-03-19 13:33:59 3017 5

原创 GFS中一致性的总结

GFS中一致性的总结1. 一致性(consistency)的背景只要在分布式系统中,不管是分布式文件系统还是分布式数据库,只要数据存在多个副本,就一定会涉及到一致性的问题。通常来说一致性主要分为内部一致性和外部一致性。这两个一致性有本质的区别,事务的 ACID 属性中有一个 C 是 Consistency,表示事务的执行一定保证数据库中数据的约束不被破坏。而分布式领域提及的 Consistency 表示系统的正确性模型。下面只讨论分布式系统中的一致性。2.影响一致性的操作修改元数据写数据:

2021-03-19 13:32:28 2696

原创 2021Shopee通用笔试题(第二场)编程题代码解析

Shopee使用的是ACM赛制,但是数据要求确实LeetCode格式,所以处理数据的输入和输出比较麻烦,最后我选择了使用python来解题。简单总结来说就是,写题3分钟,调格式1小时。第一题:简单的dp问题,从左上角走到右下角,每次只能向右或者向下走,求最小花费,状态转移方程为:dp[i][j] = min(dp[i - 1][j], dp[i][j - 1]),把第一行和第一列进行初始化,防止进行越界判断的复杂处理。raw = input()[1:-1].split("],")raw[len(r

2021-03-18 11:36:52 2983 7

原创 Codeforces Round #674 (Div. 3)题解

解题情况:solved: (4 / 6)知识点分布:A题:模拟B题:找规律C题:找规律D题:前缀和、规律E题:费用流F题:DPProblem A:Floor Number题目传送门:Floor Number解题思路:水题,初始值为2,每次加x,直到大于等于n为止。#include <bits/stdc++.h>using namespace std; int main(){ int T; cin >> T; while(T--

2020-10-01 19:15:35 444

原创 python的自省机制

文章同步更新于:blog.dalao.icu/archives/34.html,请访问该博客获得更好的阅读体验。1.什么是自省机制在编程语言中,自省(introspection)并不是自我反省,而是指自我检查行为。它的内容包括:告诉别人,我是谁告诉别人,我能做什么检查某些事物以确定它是什么,它能做什么,这样,给开发人员带来了极大的灵活性和控制力。具体的来说,就是OPP(面向对象)语言在程序运行时,能够知道对象的类型,部分语言还能够知道对象所拥有的属性。自省机制,对很多动态语言(如pyt

2020-06-22 22:14:08 2261 1

原创 python中的Mixin设计模式

文章同步更新于:blog.dalao.icu/archives/33.html,请访问该博客获得更好的阅读体验。1.什么是Mixin设计模式mixin设计模式可以看做是多继承的一种。那么首先,咱们谈谈为什么会出现多继承这种语法。汽车和飞机他们都同属于交通工具,但飞机可以飞行,汽车无法做到,所以,飞行这个行为不能写到交通工具这个类中,如果每一个交通工具各自实现自己的行驶方法,就违背了代码尽可能重用的原则(如果交通工具种类越来越多,就会造成大量代码冗余)。所以,我们要表示飞行这个行为,就需要进行多继承

2020-06-21 20:42:41 2256

原创 使用状态机消除递归

文章同步更新于:blog.dalao.icu/archives/32.html,请访问该博客获得更好的阅读体验。1. 递归的简介我们知道,递归是一种函数调用自身的方法,利用计算机程序运行的天然机制(即计算机擅长的是解决同一个问题),可以大幅度的精简代码,比如使用递归实现一个阶乘:long long factorial(int n) { if(n == 1) return 1; // 递归基(出口) return n * factorial(n - 1);}2.递归的效率因

2020-06-17 19:25:20 2263

原创 使用github+jsdelivr作为视频床

文章同步更新于:https://blog.dalao.icu,请访问该博客获得更好的阅读体验。感谢JefferyIFdalao提供的神奇方法。1. 配置FFmpeg注:IOS因为不支持HLS,所以对IOS上无法正常播放视频,其他端都可以正常播放。因为脚本要使用到FFmeg对源视频文件切分成m3u8格式,所以在使用脚本之前,请配置好FFmpeg,去官网下载并配置好环境变量。下载地址:http://ffmpeg.org/download.html#build-windows选择对应的系统下载,比如

2020-06-15 17:49:55 1871

原创 使用PicGo+github+jsdelivr作为图床

文章同步更新于:https://blog.dalao.icu,请访问该博客获得更好的阅读体验。1.什么是图床?所谓图床工具,就是自动把本地图片转换成链接的一款工具,网络上有很多图床工具,就目前使用种类而言,PicGo 算得上一款比较优秀的图床工具。它是一款用 Electron-vue 开发的软件,可以支持微博,七牛云,腾讯云COS,又拍云,GitHub,阿里云OSS,SM.MS,imgur 等8种常用图床,功能强大,简单易用。这里是最新版本的项目发布地址:https://github.com/Mo

2020-06-15 17:05:49 455

原创 C++加速输入的几种方法

1.C++IO流的同步和绑定在C++中,cin和cout的速度其实不并不慢,C++中的流的IO速度相当的快,其速度与初始设定的缓存区大小和硬盘的IO速度有关。但在C++中,为了兼容C的IO(scanf和printf),cin和cout被设置为与C的IO同步,这样导致cin和cout的速度不如scanf和printf快。另外,在默认情况下,标准输入设备(cin)与标准输出设备(cout)绑定在一起,它保证在调用输入之前已经刷新输出缓冲区,这样也会降低读取效率。所以,我们可以手动取消他们与C语言IO的同

2020-06-15 16:35:41 4266 2

原创 新博客地址

新博客地址:https://blog.dalao.icu/以后博客在这个网站上更新,CSDN暂时停更

2020-06-09 18:50:54 8790

原创 大道至简-数据结构:实现一个顺序表(可当成模板使用)

概述一共三个文件,分别是SeqList.h,SeqList.cpp,main.cpp,分别为声明头文件,实现源文件,和测试源文件。该顺序表采用的是动态分配内存的设计,容量不足时会自动扩容为原来的2倍,但没有进行缩容操作的设计。// SeqList.h#ifndef SEQLIST_SEQLIST_H#define SEQLIST_SEQLIST_Htypedef int ElemTy...

2020-04-29 10:57:06 2009

原创 旅行商问题:求最短Hamilton路径

题目传送门最短Hamilton路径内容引入总所周知,旅行商问题是一个NP完全问题,即没有一个合适的算法来解决它,只能用朴素算法(也就是通常所说的暴力算法)去进行优化。Hamilton路径的定义:在一张图中,从点0到点n-1不重不漏的恰好经过每一个点一次的路径。解题思路我们很容易联想到朴素算法,即dfs枚举n个点的全排列,计算路径长度去最小值,这样时间复杂度为O(n∗n!)O(n*n...

2020-04-15 18:25:50 2927

原创 洛谷p4479:单源最短路模板(使用邻接表+堆优化的dijkstra算法)

题目传送门洛谷p4479解题思路因为数据量过大,无法使用普通的dijkstra算法以及邻接矩阵来存图,这里我们可以使用邻接表+堆优化的dijkstra算法,或者采用链式前向星+堆优化的dijkstra算法,这里给出后者的代码。Code#include <bits/stdc++.h>using namespace std;const int INF = 0x3f3f3f...

2020-04-14 18:48:18 265

原创 多源最短路模板——hdu1874:畅通工程续(使用dijkstra、bellman-ford、spfa、dijkstra+堆优化)

题目传送门hdu1874:畅通工程续解题思路这题因为数据量比较小,可以使用多种最短路算法来解决,是一道经典的模板题,下面附上floyd算法、dijkstra算法、Bellman-Ford 、spfa算法、以及dijkstra + heap优化的代码。坑点:这题可能一个城市到另一个城市有多条路径,我们记录的时候,要记录最小的那条路径,不能记录最后的那条路径,解其他题目的时候也要注意。以及,...

2020-04-14 18:44:48 2076

原创 大道至简-数据结构(时空复杂度)

程序是用来解决实际问题,它由多个步骤或者过程组成,这些步骤或者过程就是解决问题的一个**算法。**解决某个问题时,我们可以提出多种不同的算法,但花费的时间和内存就大不相同了,在实际应用中,我们当然希望找到一个最优的算法,能尽可能的节约时间和空间成本,那么我们如何评价一个算法的性能呢?这里就要提到今天的主角——时空复杂度了。我们知道,一个由某种编程语言实现的算法运行在某台机器上的性能跟很多因素都...

2020-04-12 12:36:52 243

原创 大道至简-数据结构(开篇:当我们在学习数据结构的时候,我们在谈论什么?)

业界有三句流传很经典的话:Program=data structure+algorithm (程序= 数据结构 + 算法)Software=Program+Software Engineering ( 软件 = 程序 + 软件工程)Software Company=software+Business Model (软件公司 = 软件 + 商业模式)数据结构是程序的灵魂,也是支撑算法的基本骨...

2020-04-10 23:35:43 2135

原创 【题解】 AtCoder beginner Contest 153

ProblemA:Serval vs Monster题目传送门:https://atcoder.jp/contests/abc153/tasks/abc153_a解题思路:问你需要多少次技能才能消灭怪兽。输出⌈HA⌉⌈\frac{H}{A}⌉⌈AH​⌉即可,可以转化为⌊H+A−1A⌋\lfloor \frac {H+A-1} A \rfloor⌊AH+A−1​⌋代码:#include...

2020-02-07 17:15:05 504

原创 【题解】2020牛客寒假算法基础集训营1 (全题解)

ProblemA: honoka和格点三角形题目大意: 给你一个n∗mn*mn∗m的格点矩阵,请你找出”好三角形“的个数。解题思路:可以把面积为 111的“好三角形”分为两类分开统计:两条边和两个坐标轴平行;只有一条边和某个坐标轴平行。对于第一种情况,一定是 1∗21∗21∗2 或者 2∗12∗12∗1 的形式,一个 1∗21∗21∗2的矩形中含有4个不同的三角形。总数是 4∗((n−2...

2020-02-06 21:49:22 348

原创 「RQNOJ73」24点

题目描述 Descriptionsuperwyh是一个非常疯狂的24点爱好者,空闲时总是自己拿出扑克来算24点,24点的规则很简单,就是给你4张扑克(从1至13,用A代替1,J代替11,Q代替12,K代替13)通过加减乘除来求得24,各位oier帮了superwyh好多忙,为了报答大家superwyh就和大家做个24点的游戏,superwyh给大家4张牌大家告诉superwyh能不能凑成24就...

2019-10-16 21:38:04 160

原创 【C程序设计语言第二版】练习3-4:itoa处理最大负数

解题思路我们观察最初的itoa函数:void itoa(int n, char s[]){ int i, sign; if((sign = n) < 0) n = -n; i = 0; do { s[i++] = n % 10 + '0'; } while((n / 10) > 0); if(sign < 0) s[i++] = '-'; s[i] =...

2019-07-14 16:04:06 372

原创 【C程序设计语言第二版】练习3-3:将a-z等速记符进行扩展

解题思路我们每次先读入一个字母,然后判断字母以及字母之后的值是否是-和另一个大于它的字母,如a-b这种形式,如果满足,则进行扩展,否则进行下一个读入。void expand(char s1[], char s2[]){ char c; int i, j; i = j = 0; while((c = s1[i++]) != '\0) { if(s1[i] == '-' &&...

2019-07-14 15:52:58 597

原创 【C程序设计语言第二版】2-9:x& (x - 1)的妙用

知识点x & (x - 1)可以快速计算x中1的个数,比单纯的移位运算收敛的更快,效率更高,为什么可以这样呢,我们观察到,x - 1实际上是把x的最后一个1变成了0,这样与运算后,可以最右边的1就被清除掉了。...

2019-07-13 22:44:06 261

原创 【C程序设计语言第二版】练习2-8:将x循环右移n位

解题思路我们可以用一个变量rbit来记录x最右边的位移到最左端的位置(len(x) - 1),然后我们把x右移一位,再对右移后的x与rbit进行或操作,这就完成了一次对x的循环右移操作,我们操作n次即可完成。//计算出运行程序的计算机所使用的字长int wordlength(){ int i; unsigned v = (unsigned) ~0; for(int ...

2019-07-13 22:35:56 1298

原创 【C程序设计语言第二版】2-7将x中从p开始的n个位求反

解题思路要对n个位进行求反,我们可以使用异或操作,即相同得0,不同的1,即让那n个位分别于1进行异或操作,若原数位为1,则的0,若原数位为0,则得1。unsigned invert(unsigned x, int p, int n) { return x ^ (~(~0 << n) << (p - n + 1));}...

2019-07-13 22:21:28 594

原创 【C程序设计语言第二版】练习2-6:将x中从第p位开始的n个位设置成y中最右边n位的值

解题思路为了把x从第p位开始的n个位设置成y最右边的n个位,我们首先需要对x中的n个位进行清零,然后对y中的其他位(除最右边的n个位)清零,并将这n个位左移到x对应的n个位上。对x清零,我们需要让x和一个屏蔽码进行与运算,这个屏蔽码从p位置开始的n个位都是0,其余位都是1,对y同理。//对x中n个位清零xxxnnnxxx111000111xxx000xxx//对y的n个位清零yy...

2019-07-13 22:17:21 2039

原创 【C程序设计语言第二版】atoi和atof函数的实现

知识点atoi函数:将字符串转换为整型atof函数:将字符串转换为浮点类型这里我们需要用到字符与ascii码一一对应的知识,对于atof函数我们可以首先忽略小数点,每次取一个数,再将上次得到的数乘以10求和,得到一个大整数后再将小数点左移即可。而atoi函数可以借助atof函数+取整完成。**注:**这里需要对字符串进行去除空白以及符号进行特判。#include <bits/st...

2019-07-13 21:57:27 397

原创 【go语言学习笔记】结构体

1.结构体的定义go语言中,结构体的声明非常类似c语言,具体定义方法如下:初始化方法有三种:顺序初始化,每个变量都必须初始化部分成员初始化,未初始化的变量被赋值成0结构体指针变量初始化package mainimport "fmt"// 定义一个结构体类型type Student struct { id int name string sex byte ag...

2019-07-09 09:52:12 161

原创 【go语言学习笔记】map

1.map的定义go语言内置有map这种数据结构,它由无序的键值对组成,跟大部分语言中的map用法非常相似。它的键不能由可变类型(引用语义)的结构类型担当,如切片、数组、函数等等。map只有len,没有cap。我们可以直接定义,或者通过make函数创建,通过make函数创建时,可以指定容量。package mainimport "fmt"func main() { // 无序结...

2019-07-09 09:40:21 151

原创 【go语言学习笔记】随机数

知识点go语言中的随机数也是伪随机数,使用方法类似c语言,需要设置随机数种子,使用包math/rand以及time来完成。demo:package mainimport "fmt"import "math/rand"import "time"func main() { //设置种子,只需要一次,以当前时间作为种子 rand.Seed(time.Now().UnixNano(...

2019-07-07 23:04:26 184

原创 【go语言学习笔记】数组和切片

1.数组go语言中也配有数组这种数据结构,它的定义方式类似java,每一种定义都是一种类型,比如:var arr [50]int和var arr [100]int,他们分别是[50]int类型和[100]int类型。可以使用迭代器来遍历数组。demo:package mainimport "fmt"func main() { // 数组,同一个类型的集合 var arr [5...

2019-07-07 22:57:02 217

原创 【go语言学习笔记】指针

1.指针的基本操作go语言中,指针的用法类似c语言,具体操作请看demo:package mainimport "fmt"func main() { var a = 10 fmt.Printf("a = %d\n", a) //变量的值 fmt.Printf("&a = %p\n", &a) //变量的地址 // 保存某个变量的地址,需要指针类型,*int...

2019-07-07 22:32:08 103

原创 【go语言学习笔记】分文件编程

知识点go语言也跟其他语言一样,推荐分模块编程,这里类似java的包的概念,但是包的作用域不是由public和private等关键字决定的,而是被调用模块的函数首字母是否大写,如果大写,表示可以在外部调用,小写,表示私有,只能在本文件中调用。注: go语言中,必须给项目设置环境变量,编译器才能找到对应的包,这种不好的特性将在以后版本被废除。// package calc文件package...

2019-07-07 22:26:51 313

原创 【go语言学习笔记】局部变量和全局变量

知识点全局变量: 定义在函数外部的就是全局变量,可以在任意函数中使用,但go语言中全局变量不能直接给其赋值。局部变量: 定义在{}里面的变量就是局部变量,只在大括号中有效,执行到定义变量的那句话,才开始分配空间,离开作用域自动释放。作用域: 变量的作用范围。demo:package mainimport "fmt"var a int //定义在函数外部的就是全局变量,可以在任意函...

2019-07-07 22:22:01 1034

原创 【go语言学习笔记】获取命令行参数

知识点go语言中,如果我们要获取命令行参数,则需要使用os包的Args来得到,这是一个字符串数组类型。package mainimport "fmt"import "os"func main() { list := os.Args //Args为参数列表,字符串数组 n := len(list) fmt.Println("n = ", n) for i := 0; i &l...

2019-07-07 22:15:20 121

原创 【go语言学习笔记】延迟调用关键字——defer

知识点go语言中,defer语句可以使函数调用在函数结束前调用,defer关键字后面必须接函数调用语句,不然编译器会报错。package mainimport "fmt"func main() { fmt.Println("aaaaaaaaa") //defer延迟调用,main函数结束前调用,defer语句后面必须接函数调用语句 defer fmt.Println("bbbb...

2019-07-07 18:47:19 211

原创 【go语言学习笔记】闭包和匿名函数

1.匿名函数和闭包的概念匿名函数: 声明函数时不显式声明函数名。闭包: 简单来说就是一个函数定义中引用了函数外定义的变量,并且该函数可以在其定义环境外被执行。这样的一个函数我们称之为闭包。实际上闭包可以看做一种更加广义的函数概念。因为其已经不再是传统意义上定义的函数。go语言中的匿名函数声明方法类似于js,而闭包声明类似于python。demo:package mainimport ...

2019-07-07 18:41:36 309

100个gdb调试技巧-高清书签版

本书介绍了大量的gdb调试技巧,里面的技巧在开发过程中非常的实用,高清带书签版

2018-07-23

杭电ACM训练营课件

杭电的ACM训练营的课件,涵盖了基本算法,如,贪心,二分,博弈,图论,搜索等内容,适合ACM爱好者以及ACM竞赛者。

2018-07-06

C语言成绩管理系统(含开发文档)

本文件中是使用vs2012开发的学生成绩管理系统,能进行读取,增加,删除,查找,编辑,成绩排序等功能,并附含各个文档的开发文档。

2018-07-06

北大暑期ACM训练营ppt

本资源是北大暑期ACM训练营的全部课件资源,对打ACM比赛或者对算法爱好的人有很大的帮助。

2018-07-06

行列式计算方法小结

本ppt适合复习或学习线性代数行列式的大学生,里面总结了行列式的大部分求解方法。

2018-07-02

计算机网络原理复习ppt

本ppt针对《计算机网络原理》第七版 谢希仁的书做了知识点的详细总结,适合需要复习或者学习网络原理的大学生。

2018-07-02

《C语言趣味编程100例》

《C语言趣味编程100例》高清扫描版,不带书签,适合有一定c语言基础的人阅读

2017-12-27

空空如也

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

TA关注的人

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