自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(75)
  • 资源 (1)
  • 收藏
  • 关注

原创 「阅读」数据密集型系统设计 第七章 事务

事务通常被定义为保证“一组操作要么一起成功,要么一起失败”的机制。本文从错误处理的角度来看,将事务看作一种简化系统错误处理的机制,通过事务,应用程序中错误处理的流程得到了简化。基于错误处理的角度,作者在本章节中很关注当出现错误时,事务是如何表现的。最后总结一下,本文中对基于事务中 ACID 属性进行介绍,主要是介绍隔离性 && 原子性。尤其是 ACID 中最难理解的隔离性,隔离性的介绍主要依照 提供什么保证、这些保证解决了那些问题,有那些问题无法解决、如何实现这种级别的保证 进行。

2024-09-01 00:58:47 855 1

原创 「阅读」数据密集型系统设计 第六章 分区

什么是分区?分区是通过特定列的值将数据划分为逻辑独立的部分,每个分区是一个数据子集。常见的可以用于分区的维度:时间、地理位置、类别等分区的好处?提高查询性能:只扫描某个表而不是整张表提高管理和维护数据的能力:数据通过某个维度进行组织。为什么有分区技术?分区技术的初衷:针对海量数据场景,提高获取/更新数据的性能分区技术和可伸缩性契合。随时间推移,数据库以下情况都需要数据 && 请求从一个节点转移到另一个节点种,将负载从一个节点转移到另一个节点的过程称为再平衡。

2024-08-24 22:55:22 617

原创 「阅读」数据密集型系统设计 第五章 复制

微服务架构下,为了用户体验、可用性等考量,数据往往存储在多个机器上。为了保证数据的一致性,数据之间一定会存在「复制」 操作。复制是解决一致性的一个手段,但是在当前微服务架构中,一致性已经不是一个 yes or no 的问题,一致性也存在着不同程度。因果一致性读自己所写会话一致性单调读一致性单调写一致性那么如何理解「复制」?复制中涉及到的实体有哪些?复制的源头和目标实体:复制的源头和目标显然都是数据库,根据架构不同,存在主库、从库之分或者所有库均可读写复制的数据粒度:数据页?

2024-08-17 16:37:13 863

原创 「阅读」数据密集型系统设计 第四章 编码

在大型应用程序中,代码变更无法立刻生效。本章中介绍几种编码数据格式:JSON、XML、Protocol Buffers Thrift 和 Avro。重点关注:这些格式如何应对模式变化,如何对新旧代码数据需要共存的系统提供支持。最后,本章介绍了如何使用数据进行存储和通信:REST、RPC、消息传递系统大体上说,文章中提到的模式演变是指在系统迭代过程中,对接口的参数进行修改(例如 IDL 中定义了接口的模式,对 IDL 的修改就代表了文中说的模式转变)

2024-08-11 21:20:18 752

原创 「阅读」数据密集型系统设计 第三章 存储

数据存储&&检索

2024-08-02 23:36:19 1050

原创 「阅读」数据密集型系统设计一

来源:https://github.com/Vonng/ddia/blob/master/ch1.md。

2024-07-30 09:46:26 627

原创 消息队列-消息队列保证消息可靠性的一些建议

kafka 保证对「已提交」的消息进行有限度的可靠性。已提交:消息已经在 1-n 个 broker 上写到 日志 中有限度:n 个 broker 不能同时全部挂掉,不然神仙难救。

2024-06-16 00:08:25 785 1

原创 「go module」一文总结 go mod 入门&使用

Go Modules 简述

2023-11-26 17:42:04 2140

原创 「项目阅读系列」go-gin-example star 6.5k!(1)

go 项目代码阅读

2023-11-19 12:39:23 561

原创 「git 系列」git 如何存储代码的?

git 对象模型以及存储管理

2023-11-19 00:34:07 784

原创 [mysql系列] mysql 数据库如何实现事务回滚

主要参考资料为:《Mysql 是怎样运行的》

2023-08-20 19:20:05 2703

原创 【leetcode】背包问题 5/6

1049 最后一块石头的重量II思路:将整个数组中的数分为两部分,并且让其尽量相等,就可以达到最后一块石头最小的目的。由此,可以将该问题转换为一个背包问题,背包容量为 sum/2,在这个容量下拿到最大体积的石头。定义 dp 数组dp[i] 表示 i 容量下可以容纳石头的最大重量。递推公式dp[i] = Math.max(dp[i], dp[i-stones[j]]+stones[j]);初始化全部初始化为 0 即可遍历顺序当使用一维 dp 时,外层是物品,内层是容量,并且内层是倒序遍历。

2022-05-06 23:24:29 206

原创 【手写 Spring 框架 AOP 篇】一、基于 JDK、CGlib 实现 AOP 切面

这个系列是基于小傅哥的「手撸 Spring」学习的一个记录目标AOP 意为面向切面编程,通过预编译的方式和运行期间动态代理实现程序功能的统一维护。这句话可能不太好理解,可以先看下图:从图中可以看出, AOP 的作用就是在对某些具有共同特点的方法进行拦截,并执行方法拦截器中的功能,完成对原有方法的功能的扩展。这一次首先是要实现一个简单的切面功能。设计首先从代理一个方法,来观察代理方法的过程。public void test_proxy_method() { Object t.

2022-05-06 20:50:37 829

原创 Leetcode 栈的简单应用

Leetcode 20 有效的括号题目描述给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串 s ,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。示例 1:输入:s = “()”输出:true示例 2:输入:s = “()[]{}”输出:true示例 3:输入:s = “(]”输出:false示例 4:输入:s = “([)]”输出:false示例 5:输入:s = “{[]}

2021-05-12 15:18:35 306

原创 Leetcode 349 两个数组的交集

题目描述给定两个数组,编写一个函数来计算它们的交集。示例 1:输入:nums1 = [1,2,2,1], nums2 = [2,2]输出:[2]示例 2:输入:nums1 = [4,9,5], nums2 = [9,4,9,8,4]输出:[9,4]分析和实现对于这个问题,要求的结果是两个数组的交集,也就是两者都有的元素。那么,很自然的思路就是对两个数组进行统计,然后查看两者之间的相同元素。Map + Set在具体实现时,我用 map 对第一个数组进行统计,用 set 来保存两个

2021-05-10 15:44:15 250

原创 Leetcode 1207独一无二的出现次数

问题描述给你一个整数数组 arr,请你帮忙统计数组中每个数的出现次数。如果每个数的出现次数都是独一无二的,就返回 true;否则返回 false。示例 1:输入:arr = [1,2,2,1,1,3]输出:true解释:在该数组中,1 出现了 3 次,2 出现了 2 次,3 只出现了 1 次。没有两个数的出现次数相同。示例 2:输入:arr = [1,2]输出:false示例 3:输入:arr = [-3,0,1,-3,1,1,1,-3,10,0]输出:true提示:

2021-05-10 00:28:35 124

原创 Leetcode 242 有效的字母异位词

问题描述给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。示例 1:输入: s = “anagram”, t = “nagaram”输出: true示例 2:输入: s = “rat”, t = “car”输出: false说明:你可以假设字符串只包含小写字母。进阶:如果输入字符串包含 unicode 字符怎么办?你能否调整你的解法来应对这种情况?分析和实现统计法可以使用额外的空间进行字符串的统计,对于第一个字符串,统计各个字符出现的次数;对于第二个

2021-05-09 23:58:33 175 1

原创 Leetcode 13 罗马数字转整数

问题描述罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。字符 数值I 1V 5X 10L 50C 100D 500M 1000例如, 罗马数字 2 写做 II ,即为两个并列的 1。12 写做 XII ,即为 X + II 。 27 写做 XXVII, 即为 XX + V + II

2021-05-01 11:39:08 88

原创 Druid 统计监控页面无法打开

问题描述最近在练习整合 Springboot + Druid,却发现当我在 yml 中配置好 Druid 后,系统总是出现 404 错误。解决方法搜集了网上的很多资料之后,我得到了两种总结的方法。1. yml 配置对于 Druid 依赖,有两种:druid 和 druid-spring-boot-starter。当我使用前者进行 yml 配置后,无法正确进入控制页面,使用后者即可。补充一句,在我查到的很多博客中,有人将 1.1.20 版本降级后,出现了正确的页面,我自己测试 1.1.10 和 1

2021-05-01 10:21:31 5769 1

原创 剑指 offer 58-II 左旋转字符串

问题描述字符串的左旋转操作是把字符串前面的若干个字符转移到字符串的尾部。请定义一个函数实现字符串左旋转操作的功能。比如,输入字符串"abcdefg"和数字2,该函数将返回左旋转两位得到的结果"cdefgab"。示例 1:输入: s = “abcdefg”, k = 2输出: “cdefgab”示例 2:输入: s = “lrloseumgh”, k = 6输出: “umghlrlose”限制:1 <= k < s.length <= 10000分析和实现这

2021-04-30 15:00:09 211 1

原创 Leetcode 344 反转字符串

题目描述编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 char[] 的形式给出。不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。你可以假设数组中的所有字符都是 ASCII 码表中的可打印字符。示例 1:输入:[“h”,“e”,“l”,“l”,“o”]输出:[“o”,“l”,“l”,“e”,“h”]示例 2:输入:[“H”,“a”,“n”,“n”,“a”,“h”]输出:[“h”,“a”,“n”,“n”,“a”,“H”

2021-04-30 10:25:17 108

原创 剑指offer 05 替换空格

问题描述请实现一个函数,把字符串 s 中的每个空格替换成"%20"。示例 1:输入:s = “We are happy.”输出:“We%20are%20happy.”分析和实现暴力实现最容易想到的就是遍历并且进行字符串拼接,具体代码如下:class Solution { public String replaceSpace(String s) { String result = ""; int length = s.length();

2021-04-28 22:00:32 78

原创 Leetcode 54 螺旋矩阵

Leetcode 数组系列:leetcode 1 两数之和leetcode 59 螺旋矩阵 IIleetcode 66 加一剑指offer3 数组中重复的数字leetcode 75 颜色分类Leetcode 54 螺旋矩阵问题描述给你一个 m 行 n 列的矩阵 matrix ,请按照 顺时针螺旋顺序 ,返回矩阵中的所有元素。示例 1:输入:matrix = [[1,2,3],[4,5,6],[7,8,9]]输出:[1,2,3,6,9,8,7,4,5]示例 2:输入:m

2021-04-24 17:11:07 141

原创 Leetcode 75 颜色分类

Leetcode 数组系列:leetcode 1 两数之和leetcode 59 螺旋矩阵 IIleetcode 66 加一剑指offer3 数组中重复的数字leetcode 75 颜色分类问题描述给定一个包含红色、白色和蓝色,一共 n 个元素的数组,原地对它们进行排序,使得相同颜色的元素相邻,并按照红色、白色、蓝色顺序排列。此题中,我们使用整数 0、 1 和 2 分别表示红色、白色和蓝色。示例 1:输入:nums = [2,0,2,1,1,0]输出:[0,0,1,1,2,2]

2021-04-24 16:31:36 126

原创 Leetcode 剑指offer3 数组中重复的数字

题目描述找出数组中重复的数字。在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。示例 1:输入:[2, 3, 1, 0, 2, 5, 3]输出:2 或 3分析和实现暴力解法对于这个问题,直观的感受,就是直接 for 循环搜索,然后使用一个 Map 进行记录,如果已经在记录中存在,说明已经重复,返回该值,反之,继续循环。代码如下class Soluti

2021-04-24 13:17:51 209

原创 Leetcode 66 加一

题目描述给定一个由 整数 组成的 非空 数组所表示的非负整数,在该数的基础上加一。最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。你可以假设除了整数 0 之外,这个整数不会以零开头。示例 1:输入:digits = [1,2,3]输出:[1,2,4]解释:输入数组表示数字 123。示例 2:输入:digits = [4,3,2,1]输出:[4,3,2,2]解释:输入数组表示数字 4321。示例 3:输入:digits = [0]输出:[1]提示:1

2021-04-23 21:15:36 122

原创 Leetcode 59 螺旋数组 2

题目描述给你一个正整数 n ,生成一个包含 1 到 n2 所有元素,且元素按顺时针顺序螺旋排列的 n x n 正方形矩阵 matrix 。示例 1:输入:n = 3输出:[[1,2,3],[8,9,4],[7,6,5]]示例 2:输入:n = 1输出:[[1]]解法对于这个问题,我们可以使用模拟的方法,按照图中的顺时针顺序进行填充。**在这个问题中,对于每一层的填充,我们可以分解为四个步骤:从左到右,从上到下,从右到左,从下到上。**代码如下:class Solution {

2021-04-21 15:55:52 144

原创 Leetcode 1两数之和

问题描述给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 的那 两个 整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。你可以按任意顺序返回答案。示例 1:输入:nums = [2,7,11,15], target = 9输出:[0,1]解释:因为 nums[0] + nums[1] == 9 ,返回 [0, 1] 。示例 2:输入:nums = [3,2,4], target = 6

2021-04-21 10:49:33 135

原创 Leetcode 38 外观数组

题目描述题目分析和实现根据题目可知,我们可以得到如下几点:当 n == 1 时,返回 “1”对于第 n 个输出,它只与它的前一项有关对于第 n 个输出,它表示对前一项的描述所以对于要写出来的程序,特点如下:主体是一个循环,在循环中生成对上一次的描述描述函数中,主要是对上一个字符串的分割和计数实现如下:class Solution { public String countAndSay(int n) { String s = "1"; f

2021-04-20 14:58:23 133

原创 Spingboot 接口的统一格式返回

文章目录前言代码效果后记前言在后半年在学长领导下,使用 MVC 模式做了自己的第一个项目,由于对这种模式是第一次接触,写下来的代码如今看来很不如人意,尤其是最近在使用这部分后台代码给微信小程序使用的时候更是如此,后台代码的健壮性和返回值的不统一给使用带来了很大的麻烦。注释:我在使用时,代码结构主要是 Controller、Service、Dao、Entity以及 Util,其中 Entity 为实体类,并不是定义 BO VO 等多个实体类,应该不算是严格意义的 MVC。最近在学习一些专栏的时候,

2021-02-07 22:02:54 277

原创 如何在聊天框中将两个 div 并列

缘由本人菜鸡,高手勿进!!!!!最近在做一个前端小程序的时候,需要模拟 qq 聊天框的样式,其中头像和输出的文本如何保持在一条线上让我搞了很久,记录一下。做法<div class="btalk" id="bTalk"> <div id="khName">我</div> <!-- 头像和文本的容器 --> <div id="box"> <span id="bsay">密码</span>

2020-09-22 00:20:28 161

原创 金融风控 task3

文章目录学习目标学习过程读取数据异常值处理特征预处理缺失值填充学习目标学习特征预处理、缺失值、异常值处理、特征分桶等特征处理方式学习特征交互、编码、选择的相应方法学习过程读取数据import pandasaspd import numpy as np import matplotlib.pyplot as plt import seaborn as sns import datetime fromt qdm import tqdm from sklearn.preprocessin

2020-09-21 23:59:05 2560

原创 金融风控入门赛 task2

EDA数据总体了解读取数据集并了解数据集大小,原始特征维度 读取数据的扩展知识 :对于文件特别大的场景,通过nrows参数,来设置读取文件的前多少行;分块读取 通过info熟悉数据类型 粗略查看数据集中各特征基本统计量缺失值和唯一值查看数据缺失值 查看唯一值特征情况深入数据-查看数据类型类别型数据 数值型数据 离散数值型数据 连续数值型数据 特征分箱数值型特征本是可以直接入模的,但往往风控人员要对其做分箱,转化为WOE编码进而做标准评分卡等操作。 从模型效果

2020-09-18 22:53:29 117

原创 金融风控-贷款违约预测 task1

文章目录学习目标预测指标ROC学习目标理解赛题数据和目标,清楚评分体系。下载数据和结果提交打卡,熟悉比赛流程预测指标竞赛使用 AUC 做评价指标。AUC 被定义为 ROC 曲线下与坐标轴围成的面积。ROCROC 使用正例率和负例率做横纵轴正例率 TPR = TP/(TP+FN);负例率 FPR = TN/(TN+FP);如图所使,ROC 一般是在 y=x 之上,所以 AUC 面积在 0.5-1 之间,数值越大效果越好。...

2020-09-14 22:31:49 143

原创 python 爬虫实战:掘金文章爬取并保存在 mysql

文章目录一、代码目的二、爬取内容和思路2.1 爬取内容:2.2 思路爬取内容的分析存储到 mysql一、代码目的最近进行一个掘金爬虫,感觉还是挺有意思的,掘金的爬虫文章好像还是比较少的,记录一下。二、爬取内容和思路2.1 爬取内容:主要包括两部分:1. 对掘金的文章列表进行爬取,包括文章标题、用户名、文章简介以及文章链接;2. 具体的文章内容,这部分只爬取了文章标题和内容。2.2 思路爬取内容的分析首先分析图一,这部分通过 F12 将请求锁定在 https://apinew.juej

2020-09-07 11:48:46 2046 6

原创 位运算操作解决 leetcode 191

题目题目表述:编写一个函数,输入是一个无符号整数,返回其二进制表达式中数字位数为 ‘1’ 的个数示例:输入:00000000000000000000000000001011输出:3解释:输入的二进制串 00000000000000000000000000001011 中,共有三位为 ‘1’。思路: 本题使用位运算进行比较简单,而且有两种位运算方法。第一种:在循环中,如果 n%2 ...

2020-04-29 23:56:30 153

原创 从“递推序列”问题看两种思路的时间复杂度

题目描述给定a0,a1,以及an=pa(n-1) + qa(n-2)中的p,q。这里n >= 2。 求第k个数对10000的模。输入描述输入包括5个整数:a0、a1、p、q、k。输出描述:第k个数a(k)对10000的模。示例:20 1 1 14 58359思路:看到题目之后,我首先想到的是:递归,直接使用题目所给的公式,结果时间复杂度太高,没有通过。接着我就使...

2020-04-13 22:10:07 231

原创 牛客网成绩排序题(c++ 实现)

这两天在牛客网上刷高校复试上机题目,碰见两道题目近似的题目,记录一下。成绩排序(姓名和成绩)查找和排序题目:输入任意(用户,成绩)序列,可以获得成绩从高到低或从低到高的排列,相同成绩都按先录入排列在前的规则处理。示例:jack 70peter 96Tom 70smith 67从高到低 成绩peter 96jack ...

2020-04-12 22:50:19 1002

原创 python 小白爬虫实战:使用 scrapy 爬取微博热搜并发送邮箱

文章目录环境爬取内容和思路实现文件结构具体实现后记参考资料环境我的环境是:python3.5 + scrapy 2.0.0爬取内容和思路爬取内容:微博热搜的关键词,链接,以及导语,即简要概述热搜内容的一小段话思路:对于热搜链接:通过热搜关键词所在标签的属性再加上前缀即可(如图1)对于关键词:进入关键词所在链接,一般会有一个如图2所示的位置,根据标签解析出内容;如果没有,存入“无”...

2020-03-28 21:07:43 2709

原创 根据单词中夹杂的数字对字符串进行排序

1. 任务由题目可以知道,任务是根据字符串中的单词夹带的数字对字符串进行重新排序。例如:排序前:“is2 Thi1s T4est 3a”排序后:“Thi1s is2 3a T4est”2.思路我的思路是:将整个字符串先分割,做成一个单词(word)为元素的 list对每一个 word ,找到它包含的数字,并记录到辅助 list 中根据辅助 list 和 words 构成的...

2020-02-15 00:16:27 449

java记事本

java记事本,基本实现了复制、粘贴、剪切、保存、查找、替换等功能

2018-06-10

空空如也

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

TA关注的人

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