自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Xunzhe

Actions speak louder than words.

  • 博客(14)
  • 收藏
  • 关注

原创 当单调栈遇到了前前缀和(Leetcode 2281. 巫师的总力量和、力扣第 294 场周赛第 4 题)

一个子数组被遍历的标识,就是计算了这个子数组的最小值 × 和。只要把所有最小值和对应子数组的和给遍历完了,整个数组就遍历完了。现在,我们有最小值 arr[0],最小值 arr[1],…… 最小值 arr[n - 1],每个都唯一对应着一个管辖范围(区间),这个区间上,有很多子数组。设区间左端点下标为 L,右端点下标为 R,可计算有 (i - L + 1) * (R - i + 1) 个子数组。这些子数组的和是可以求出来的。

2022-05-24 10:04:48 202 1

原创 单调栈的一个简单应用(Leetcode 907)

907. 子数组的最小值之和找到每个数能“管辖的区域”。因为有很多子数组的 min 是一样的,所以不用遍历 arr 中的所有子数组,然后求最小值,而是反过来,把所有可能的最小值,也就是把 arr[i] 从 0 到 len - 1 遍历一遍,计算 arr[i] * 对应数组个数 就好。

2022-05-24 09:47:47 169

原创 子数组的最大累乘积 -- 暴力与动态规划

我们发现,以 arr[i] 结尾的子数组对应的最大累积乘,其实并不需要算那么多子数组,只要算两个有代表的子数组。且根据 arr[i] 的正负,分为三种情况:1. arr[i] > 0,dpPos[i] = max(dpPos[i - 1] * arr[i], arr[i])2. arr[i] < 0, dpPos**[i] = max(dpNeg[i - 1] * arr[i], arr[i])3. arr[i] == 0, dpPos[i] = 0

2022-04-10 17:59:04 428

原创 数字签名 —— 哈希 + 私钥加密

一、签名 signature,表示指定的人,而不是别人,同意支票、信用卡收据、信件这类文件上描述的事情。那么,在制造计算机网络数字签名的时候,需要把对其独特的东西放到报文中,以表示真实身份。我们可以很容易地想到私钥。于是,可以使用私钥对明文加密,表示这份密文是由拥有私钥的一方发出来的,而且只能是拥有私钥一方发出来的。仿照现实世界,我们会对整个报文进行签名,也就是对整个报文用私钥进行加密,这样不是不可以,而是由于非堆成密钥系统下计算比较繁重,性能不高。所以出现了先哈希再加密的方法。这种方法会先形成简短

2022-04-10 15:23:41 5727

原创 一道关于 Stream 的京东笔试

2020 Java 京东笔试https://www.acmcoder.com/#/practice/company-code?compCode=jd-practice选 Java 开发工程师 2020 校招题目:What will be the result of executing this code? public static void main(String[] args) { Stream.of("jd", "jd.com", "www.jd.com", "www.

2022-04-02 17:19:10 726

原创 最小生成树:Kruskal 和 Prim(Java 实现)

文章目录最小生成树Kruskal 算法Prim 算法最小生成树要求无向图(可以有重边)Kruskal 算法(加边法 -> 并查集法):将图中所有边按照从小到大顺序进行排序,放入最小堆中遍历每条边,对该边上两节点进行检查:如果处于不同点集,则合并,并将该边加入结果集;否则跳过该边。Prim 算法(加点法):数据结构:已访问点集:HashSet<Node>待添加边集:PriorityQueue<Node>结果边集:ArrayList<Edge&gt

2022-03-02 16:35:09 508

原创 如何用二维数组保存二叉树层次遍历结果?

题目链接:https://www.nowcoder.com/study/live/716/5/17给定一个二叉树,返回该二叉树层序遍历的结果,(从左到右,一层一层地遍历)例如:给定的二叉树是{3,9,20,#,#,15,7},该二叉树层序遍历的结果是[[3],[9,20],[15,7]]提示:0 <= 二叉树的结点数 <= 1500示例1输入{1,2}输出[[1],[2]]示例2输入{1,2,3,4,#,#,5}输出[[1],[2,3],[4,5]]

2022-02-28 15:48:29 458

原创 二叉树层次遍历:队列

二叉树层次遍历二叉树层次遍历的基本算法在本文中不提及。本文内容为,在二叉树层次遍历中,为何选用队列这样一种数据结构。不使用额外数据结构首先,假设我们不使用额外的数据结构,只使用 1 个指针:访问第一层:没有任何问题,因为 root 是已知的。访问第二层:也没有任何问题,因为我们知道第二层所有结点的 parent。访问第三层:问题来了,我们不知道第三层所有结点的 parent。那该怎么办呢?访问第三层的时候一定需要知道第二层结点的位置,于是我们就想,不如把第二层结点保存起来。这样,在遍历第

2022-02-25 15:21:51 2592

原创 Spring component-scan 原理解析

文章目录<component-scan>概述1. XML: Spring 配置文件2. Parser: ComponentScanBeanDefinitionParser3. Scanner: ClassPathBeanDefinitionScanner4. Provider: ClassPathScanningCandidateComponentProvider总结本文根据 《Spring Boot 编程思想(核心篇)》第7章 走向注解驱动编程 的内容进行编写。<componen

2022-01-14 11:47:07 1502

原创 Lombok程序包找不到

Lombok找不到,之前还有,但把依赖抽取到公共的模块(这里是common模块)就会出问题。原因:maven中设置了lombok的依赖为:<optional>true</optional>。<dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <optional>true&.

2022-01-02 20:20:17 2643

原创 工厂模式:简单工厂模式、工厂方法模式、抽象工厂模式

文章目录共同特点简单工厂模式工厂方法&抽象工厂模式工厂模式:简单工厂模式、工厂方法模式、抽象工厂模式共同特点封装创建对象,它们将客户端与创建对象的具体过程分离。它的使用通常伴随着多态,如:UserDao userDao = new UserDaoMysqlImpl();UserDao userDao = Factory.getUserImpl(“mysql”);这样就创建了一个userDao,其中连接的是mysql数据库。第二种方法用的是工厂模式,它相较于第一种,能够隐藏“new”的

2021-11-19 14:11:47 557

原创 JDBC实现MySQL连接与CRUD

文章目录一、JDBC与数据库的关系二、连接数据库方法一:使用JDBC手动连接数据库1. 加载数据库的驱动2. 注册驱动3. 填上数据库连接参数,连接数据库方法二:借助数据库连接池Datasource来连接数据库1. 从配置文件中获取数据库连接配置2. 创建Datasource,并加载配置3. 连接数据库4. 释放连接三、构建`JDBCUtils`类四、借助`QueryRunner`做CRUD1. update, delete, insert2. select五、Dao持久层一、JDBC与数据库的关系首先

2021-08-01 19:35:56 348

原创 数据库系统:视图与事务

视图与事务视图定义从一个或多个表(或视图)导出的表。视图在数据库系统中仅存放创建视图的语句,不存放视图对应的数据。作用从用户的角度看:使用户能以多种角度看待同一数据库模式、简化用户操作、更清晰地表达查询。从系统的角度看:对数据库内的数据提供了一定的安全保护、提供了逻辑独立性。基本语法创建视图create view <viewName> [(<columnName1>)…] as <subQuery>[with check option]其中w

2021-06-23 13:29:26 1048

原创 L2-003 月饼 (25 分)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档L2-003 月饼 (25 分)文章目录一、题目二、题目分析三、解答代码总结一、题目L2-003 月饼 (25 分)月饼是中国人在中秋佳节时吃的一种传统食品,不同地区有许多不同风味的月饼。现给定所有种类月饼的库存量、总售价、以及市场的最大需求量,请你计算可以获得的最大收益是多少。注意:销售时允许取出一部分库存。样例给出的情形是这样的:假如我们有 3 种月饼,其库存量分别为 18、15、10 万吨,总售价分别为 75、72、45 亿

2021-04-26 20:31:41 178

空空如也

空空如也

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

TA关注的人

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