4.9k 4 分钟

# 应用推荐 baota(宝塔),可以部署自己的网站 https://aayu.today lsky(兰空图床),基于 baota 部署,在 docker 上部署好自己的兰空图床后,写博客时要用到的图片都可以保存到 NAS 里了,数据在手,天下我有 nginx,部署自己的个人博客 https://blog.aayu.today zdir,部署自己的共享云盘 https://pan.aayu.today gitea,部署自己的代码仓库 https://code.aayu.today,可私有可公开,代码保存到自己的 NAS 里,倍安心~ mariadb,本质是 mysql8...
2.9k 3 分钟

# 前言 踩坑不容易啊,终于把这个需求实现了,这样我就可以把我的博客小站通过 Git 部署到极空间上了,也可以把自己一些好玩的代码仓库上传到极空间上,再也不用担心 GitHub 的龟速访问,以及 Gitee 莫名其妙的代码审查了~~ 注意,本文需要配合内网穿透,实现外网访问后才能解决一些报错问题,有一定难度哦~~ # 安装数据库 Gitea 运行需要数据库,默认为本地 sqlite,不过不推荐这种方式。这里可以参考 kangkang 大佬在极空间论坛里发布的安装 mariadb(mysql)镜像的教程,膜拜大佬~ # 安装 Gitea 在极空间 Z4 的 Docker 里选择...
2.6k 2 分钟

# 前言 世界上什么事最让人安心呢,可能每个人心中都有自己的答案。但我觉得有一件事应该没有人会否认,那就是把数据掌握在自己的手上,最让人安心! 我之前其实已经在黑群晖上实现了兰空图床的搭建,详情可以回顾黑群晖 NAS 搭建兰空图床(Lsky),而在用了黑群晖一段时间后,发现有了 NAS 之后是真爽啊~~ 而自己搭建的黑群晖由于种种原因并不是很稳定,而自己又是个颜狗,极空间 Z4 好看的外观瞬间就吸引了我,包括对用户极为友好的手机 APP 以及是一个国产品牌,于是便入手了极空间 Z4,也开始了本次的折腾之旅哈哈~~ # 安装 Docker 宝塔 参考我之前的折腾笔记,首先第一步便是要在...
649 1 分钟

# 题目描述 # 思路和题解 哈哈哈,这类型题感觉已经渐渐找到诀窍了,实际上就是要分情况讨论,乘积为正数的最长子数组,可以分为若当前 i 是正数,那就要找 i-1 乘积为正数的最大长度;若当前 i 为负数,那就要找 i-1 乘积为负数的最大长度。所以我们就要维护两个数组~~ 虽然我已经解出这道题了,但维护两个数组应该还可以再优化一下,和前面的题类型,应该能用滚动数组将空间复杂度从 O (n) 优化到 O (1),但最近要在外面出差有点忙,所以只能放到以后再优化了,后面的题也只能抽时间再刷~ class Solution {public: int...
562 1 分钟

# 题目描述 # 思路与题解 这道题很容易陷入一个死胡同,可惜,我就陷入了~ [2,-5,-2,-4,3] 这组测试数据就很那啥,如果以我们人脑来思考,我们可以在大脑里运算一遍得出最大乘机是 24,但如果要写代码的话,在从左往右遍历的过程中,又该如何判断要放弃次最大的 20,也就是 2,-5,-2 ,从而选择 -2,-4,3 呢,这不就只能用暴力求解吗,我就陷入了这样的死胡同 看了官方题解后,我才明白关键的点在哪里,就是要分情况讨论啊,啊啊啊,因为有负号的干扰,所以我们还要多考虑一种情况,就是当前 i 如果是一个负数的话,那我就要找 i...
656 1 分钟

# 题目描述 # 思路与题解 真的是不得不服,我只能想到双重 for 循环滚动求解环形数组,结果果不其然,时间是超时的,我真的想不出其他思路了,只能去求助官方题解了,谁知官方题解不说人话,就在我继续逛评论区时,看到惊为天人的思路,真的是不得不服,再次感叹呐 直接两种情况,1:最大数组和在中间,和平时一样解法 2:最大数组和是跨越头尾,回头了, 麻烦第二种,从两边出发往中间靠拢必须都是最大,那就说明中间段就是最小,找最小不就行了 学无止境,自己要学的东西还有很多啊~ class Solution {public: int...
799 1 分钟

# 问题描述 # 思路与题解 这个题真是我的克星啊,不知道为什么,我脑子一直转不过弯来,总是会想着,要是中间有个小的负数把可以合成一个更大的连续数组隔开了怎么办,该怎么判断,我就一直死脑筋卡在这里了,感觉我也是有点笨笨的,呜呜呜~ 但言归正传,看了官方题解后,发现我就真是没转过那个弯来,你就管他是不是一个小负数会把更大的数组隔开,反正只要判断当前数的前面,前面数组的连续和是否对该数有帮助不就行了,有帮助我就收为我有(nums [i] + prev),没有帮助我就另起炉灶(nums...
636 1 分钟

# 题目描述 # 思路与题解 这题我承认我没有解出来,还是看了官方题解后才有思路的 🤣 怎么说呢,这道题如果你能转过弯,把它映射到我们前几道题所做的打家劫舍上,那这个题就很简单啦,关键就在于如何把这个题转换为打家劫舍~ 再看一遍题干, 你必须删除所有等于 nums[i] - 1 和 nums[i] + 1 的元素 ,意思不就是如果我们要获取 nums [i] 房屋的财产,那就不能获取 nums [i] 相邻两间房屋的财产了,所以我们的思路就是要把相同点数 i 累加起来,作为 nums [i]...
424 1 分钟

# 题目描述 # 思路与题解 比上一题多加了一些条件,但动态规划的思想不变,都是先求解子问题(小问题),然后逐步求解出一个复杂的问题(大问题)~ 上一题我们可以知道在当前 i 处能走到的最大距离,所以稍微一思考,只要后面走的距离在这最大距离之内,步数都不变;只有能走的最大距离不能满足 i 了,才把步数加一,同时更新 i 处能走到的最大距离,是不是很 easy~ class Solution {public: int jump(vector<int>& nums) { int n = nums.size(); if...
379 1 分钟

# 题目描述 # 思路与题解 经过前面几道题的熏陶,这类题感觉已经挺熟练了,动态规划就是先求解子问题,比如说一个长数组,我们先不要看那么多元素,可以就从有一个元素开始往后遍历求解,最后就可以求出一个复杂问题的答案了~~ 但是这题应该还有好多其他解法,比如说深度优先搜索应该也算一种,一直往前冲,冲不动了就回退,然后再往前冲~~ class Solution {public: bool canJump(vector<int>& nums) { int n = nums.size(); int limit = 0;...