题目

题目来源:牛客笔试

给定一个从 $0$ 开始的数组 $nums$ 和一个非负整数 $k$。

在一次操作中,你可以做以下操作:

  • 选择一个之前未选择过的下标 $i$,范围为 $[0, nums.length - 1]$ 。
  • 将 $nums[i]$ 替换为范围 $[nums[i] - k, nums[i] + k]$ 内的任意整数(包含两端)。

在应用任意次数的操作后,返回数组 $nums$ 的最大可能分数。

数组分数是“数组中最多的重复元素个数”

注意,你只能对每个下标应用一次操作。

阅读全文 »

序言

最近准备重装笔记本的系统,因此要备份文件,存到台式机里。我将要备份的文件夹压缩,通过 Windows 自带的文件夹共享(局域网共享),传输这些压缩包。

但是,传输过程却非常艰难。有的压缩包有 10 几个 GB,传了一分钟,网速就没了,之后就开始报超时之类的错误。更离谱的是,有个压缩包在两台电脑上摘要算法的结果不同。

显然,windows SMB 协议既不能保证速度,也不能保证数据正确性,于是我开始寻找更加好用的局域网传输软件。它,就是本文的主角 —— LocalSend

阅读全文 »

序言

随着 Markdown 的普及,使用传统文本编辑器写作的效率显得低下,尤其表现在一些复杂语法,比如插入表格,或者插入图片。

Typora 作为业界知名的 Markdown 编辑器,除了著名的『即时渲染』,也拥有很多方便书写 Markdown 的功能,比如插入图片时的自动保存:往一个 Markdown 文件(文本文件)中粘贴一张图片,该图片便会自动保存到指定路径,并且自动在 Markdown 中建立好引用。

对于经常用 Markdown 记笔记的我来说,这一功能应该成为业界的标准。但是,另一款常用的编辑器 —— VS Code —— 对这一功能的支持并不好。当然,我们也不应该苛求这样一款免费、通用的编辑器能够面面俱到。

需求

对于经常记笔记的用户,截图并插入 Markdown 是一个常见的需求。在这一操作的背后,有两个方面关乎着用户体验:1️⃣ 截图工具 2️⃣Markdown 编辑器。

在截图工具一致的情况下,Markdown 编辑器是决定用户体验的关键因素。下面我将展开介绍 3 种编辑器是如何插入图片的。

阅读全文 »

序言

Nvidia VSR (Video Super Resolution) 通过 AI 技术优化视频的画面质量,主要表现在锐化低分辨率的视频上。该技术最初只支持 Chrome 和 Edge 浏览器。

如何在本地视频播放器中体验这项技术?PotPlayer 最近发布了相关更新,支持了该技术。

PotPlayer 是目前数一数二的视频播放器,也是我的主力播放器。趁着这次更新,我来记录一下如何在 PotPlayer 上使用 Nvidia Super Resolution.

浏览器开启 VSR

本小节先介绍一下如何让 Chrome 和 Edge 浏览器使用 Nvidia Super Resolution。

阅读全文 »

序言

MySQL 支持 JSON 类型的字段。相比字符串类型的字段, JSON 类型有如下好处:

  • 自动检查 JSON 语法是否正确
  • 底层支持快速存取 JSON 中的元素。不需要将整个 字符串 全部读取出来,再解析成 JSON 对象

在逻辑上,JSON 与 POJO 无异。Spring MVC 已经实现了 Controller 层两者的自动转化,这体现在请求参数和返回值上。那么,Repository 层如何实现两者的自动转换呢?

本文展示了通过使用 MyBatis-Plus,无侵入式地实现持久层 JSON 与 POJO 的自动映射(ORM, Object Relational Mapping)

案例演示

数据库表

阅读全文 »

序言

控制器方法( handler )中负责请求参数校验。

传统的写法是在每个方法的开头对所有请求参数进行校验,如果存在参数不满足条件,则抛出异常,或者提前返回错误。

Validation API 提供了一系列的注解,通过将这些注解标记在 entity 类的属性上,Spring MVC 会根据这些注解的语义,自动完成请求参数校验。如果参数不满足条件,则抛出异常。这节省了开发者手动校验请求参数的麻烦。

负责自动参数校验的类实际上是由 Spring Boot 自动装配导入的,因此我们要使用对应的 starter 依赖。

案例演示

依赖

阅读全文 »

自定义 404 页面

首先,创建一个名为 404 的 post

1
hexo new 404

在对应的 md 文件中,我们可以自定义 404 页面。由于 Hexo 框架的特性,我们可以编写 JS 脚本,让页面动起来。

这里给出我的 404 页面。可以看到,上面有一个倒计时。当倒计时为 0 时,会自动跳转到首页。当然,用户也可以手动点击,从而返回首页。

下面是对应的代码,直接放在 md 文件中即可:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<script src="https://code.jquery.com/jquery-3.7.1.min.js" integrity="sha256-/JqT3SQfawRcv/BIHPThkBvs0OEvtFFmqPF/lYI/Cxo=" crossorigin="anonymous"></script>

<div align="center">您正在访问一个不存在的地址🤔</div>
<div align="center">系统会在 <span id="seconds">10</span> 秒后自动跳转到首页,</div>
<div align="center"> 您也可以点此 <a target="_self" href="/" >链接</a>, 手动跳转!</div>

<script>
$(function () {
setInterval(function () {
var seconds = $("#seconds").text();
$("#seconds").text(--seconds);
if (seconds == 0) {
location.href = "/";
}
}, 1000);
});
</script>

jQuery 在这里只是用于获取 DOM 对象,因此也完全可以用原生 JS 函数来写。

如何让网站跳转到自定义页面?

阅读全文 »
0%