主页

LCR-127 跳跃训练

一个经典的动态规划问题,类似于爬楼梯问题。学员们可以选择每次跳一个格子或两个格子,问在 num 个小格子的平台上共有多少种不同的跳跃方式。这个问题可以用动态规划的方法来解决。 我们定义 dp[i] 为跳到第 i 个格子的不同跳跃方式的数量。根据题意,可以得到状态转移方程: dp[i] = dp[i-1] + dp[i-2] 即跳到第 i 个格子的方法可以由以下两种情况组成: 从第 i-1 个格子跳一步到达。 从第 i-2 个格子跳两步到达。 边界条件是: 当 i == 0 时,dp[0] = 1,表示从起点(第0个格子)到达起点的方式有1种(即不动)。 当 i == 1 时,dp[1] = 1,表示从起点跳一步到第一个格子的方式有1种。 最后需要注意的...

阅读更多

LCR-161 连续子数组的最大和

这道题是经典的“最大子数组和”问题,可以使用 Kadane 算法解决。Kadane 算法的核心思想是遍历数组时,通过维护一个当前子数组和 current_sum 和一个全局最大子数组和 max_sum 来实现。具体步骤如下: 初始化两个变量:current_sum 为 0,max_sum 为负无穷大(或数组的第一个元素)。 遍历数组中的每个元素 x: 将 x 加到 current_sum 上。 如果 current_sum 大于 max_sum,更新 max_sum。 如果 current_sum 小于 0,则将 current_sum 置为 0,因为负的和只会降低之后的和。 返回 max_sum。 这个算...

阅读更多

Kadane 算法解释

Kadane 算法是一种用于解决最大子数组和问题的高效算法。该问题的目标是找到一个给定数组中具有最大和的连续子数组。Kadane 算法通过一次遍历数组,在 O(n) 时间复杂度内解决这个问题。以下是 Kadane 算法的详细解释: 原理 Kadane 算法基于动态规划的思想。它利用两个变量: current_max:当前子数组的最大和。 global_max:全局子数组的最大和。 步骤 初始化两个变量: current_max 为数组的第一个元素。 global_max 也为数组的第一个元素。 从数组的第二个元素开始,遍历数组。对于数组中的每一个元素,执行以下操作: 将当前元素与 curr...

阅读更多

MySQL Innodb存储引擎 Table does not support optimize, doing recreate + analyze instead 解决方案

一、背景 电商平台每天几百万的库存流水记录,库存流水记录越来越大,后面所以要定期清理(做delete操作),只保存仅15天的,但是由于库存流水表中有很多变长的字段(varchar),所以采用[delete语句]删除数据之后,磁盘空间的复用率比较低,因此需要采取OPTIMIZE TABLE的方式整理磁盘空间。 执行的SQL如下: OPTIMIZE TABLE inventory_xxx; SQL执行完之后,提示信息如下: Table does not support [optimize], doing recreate + analyze insteadx 此外:MySQL官方建议不要经常(每小时或每天)进行碎片整理;一般根据实际情况,只需要每周或者每月整理一次。 ...

阅读更多

Kettle中JavaScript内置函数说明

我们在使用JavaScript组件的时候,在左侧核心树对象栏中可以看到Kettle为我们提供了很多简洁强大的内置函数,帮助我们在写脚本的时候对数据、参数变量等能很轻松的做处理,体验编码的感觉.本篇将详细介绍JavaScript组件中的函数功能 脚本组件包含的函数主要包括六大类,分别是: 字符串类型的函数(String Functions) 浮点型的函数(Numeric Functions) 日期类型函数(Date Functions) 逻辑判断型函数(Logic Functions) 特殊的函数(Special Functions) 文件处理类函数(File Functions) 字符串类型函数(String Functions) 顾名思义,字符串类...

阅读更多

百度网盘不限速油猴插件,搭配motrix满速下载

准备浏览器Chrome或者edge 安装篡改猴测试版插件     有魔法下载链接(请自行去掉g/oo/gle中间的两个”/”)     没魔法下载链接 安装百度网盘批量下载插件     下载地址   如打开网址白屏,点击左上角不安全的感叹号-网站设置-不安全内容-允许 下载安装Motrix     下载地址 百度网盘老版本网址页才可以。     百度网盘老版本 签到和看广告可以增加点数,一般签到的点数就够用了。勾选要下载的文件,点击下载就会自动把任务推送到Motrix 原文链接

阅读更多

java自动升级sql脚本flyway 工具

为什么要用Flyway 在日常开发中,我们经常会遇到下面的问题: 自己写的SQL忘了在所有环境执行; 别人写的SQL我们不能确定是否都在所有环境执行过了; 有人修改了已经执行过的SQL,期望再次执行; 需要新增环境做数据迁移; 每次发版需要手动控制先发DB版本,再发布应用版本; 其它场景… 由于项目需求的变化,或者前期设计缺陷,导致在后期需要修改数据库,这应该是一个比较常见的事情,如果项目还没上线,你可能把表删除了重新创建,但是如果项目已经上线了,就不能这样简单粗暴了,每次运维部署项目,还得手动执行一遍SQL文件。我们需要通过 SQL 脚本在已有数据表的基础上进行升级。 有了flyway,这些问题都能得到很好的解决。 使用了 Flyway 之后,如果再想进...

阅读更多

MySQL匹配,LIKE or REGEXP?

😀 在MySQL中,我们可以使用LIKE和REGEXP函数来进行模式匹配操作。LIKE函数使用通配符进行模式匹配,而REGEXP函数使用正则表达式进行模式匹配。这两个函数都是常用的工具,但它们在匹配方式、匹配规则和性能方面存在一些区别。 一、引言 模式匹配是一种在数据库中根据特定模式进行数据筛选和查找的技术。它允许我们根据我们所需的数据模式来提取相关的数据,从而满足我们的查询需求。模式匹配在数据分析、报表生成和数据挖掘等领域中起着至关重要的作用。 在MySQL中,我们可以使用LIKE和REGEXP函数来进行模式匹配操作。LIKE函数使用通配符进行模式匹配,而REGEXP函数使用正则表达式进行模式匹配。这两个函数都是常用的工具,但它们在匹配方式、匹配规则和性能方面存在一些区别。 二、L...

阅读更多