linux.do
21.1K subscribers
117K photos
195 videos
115 files
250K links
linux.do最新话题和热议话题
Download Telegram
Leetcode每日一题 —— 1526. 形成目标数组的子数组最少增加次数(困难)

1526. 形成目标数组的子数组最少增加次数

思路
第一反应,贪心+分治就行,这真的是困难题吗?每次贪心区间最小值,然后分段递归结果。

代码
    private int[] target;
public int minNumberOperations(int[] target) {
this.target = target;
return calc(0, 0, target.length - 1);
}

public int calc(int low, int left, int right) {
if (left == right) {
return target[left] - low;
}
ArrayList<int[]> span = new ArrayList<>();
int min = target[left];
int last = left;
for (int i = left + 1; i <= right; i++) {
if (target[i] < min) {
min = target[i];
span.clear();
span.add(new int[]{left, i - 1});
last = i;
} else if (target[i] == min) {
if (i > last + 1) {
span.add(new int[]{last + 1, i - 1});
}
last = i;
}
}
if (last <= right - 1) {
span.add(new int[]{last + 1, right});
}
int ans = min - low;
for (int[] ints : span) {
ans += calc(min, ints[0], ints[1]);
}
return ans;
}

时间复杂度:O(n^2)
空间复杂度:O(n)

优化思路
但是!但是!写完后发现时间复杂度最差情况下会退化到O(n^2),看范围1 <= target.length <= 10^5大概率会超时。
我需要优化分段方法,或者换个思路。那么我能不能一次分段呢?
如果把数组看出一个线段,那么波峰波谷之间的差值就是需要操作的次数,中间部分无需关注,这样就能一次分段了。只需要找到所有的波谷分段,分段过程中记录波峰,然后每次进行削峰操作。

代码
    public int minNumberOperations(int[] target) {
if (target.length == 1) return target[0];
ArrayList<Integer> list = new ArrayList<>();
int last = 0;
list.add(0);
for (int num : target) {
if (num != last) {
list.add(num);
last = num;
}
}
if (last != 0) list.add(0);
int top = 0;
int ans = 0;
int[] lastBottom = null;
for (int i = 1; i < list.size() - 1; i++) {
int v = list.get(i);
if (v < list.get(i - 1) && v < list.get(i + 1)) {
if (lastBottom == null) {
lastBottom = new int[]{v, top};
} else {
if (v >= lastBottom[0]) {
ans += top - lastBottom[0];
lastBottom[0] = v;
} else {
ans += top - v;
}
}
top = 0;
} else if (v > top) {
top = v;
}
}
ans += top;
if (lastBottom != null) {
ans += lastBottom[1] - lastBottom[0];
}
return ans;
}

时间复杂度:O(n)
空间复杂度:O(n)

优化思路
PS.一开始想求出分段后依次削峰的,后来发现可以边分边削。
过了,但是!居然是较慢的那一批,已经是O(n)了呀。。。可能使用List影响了效率,另外在考虑削峰的过程中,发现似乎可以根据前缀直接得到是否需要削峰、要削多少,等下午下班再考虑优化下(如果我记得并且懒癌没有发作的话)。

1 post - 1 participant

Read full topic

via LINUX DO - 最新话题 (author: 魔法师)
求推荐cc中转

求大佬们推荐
之前用过88code,三天炸两天,客服装死,直接pass

6 posts - 3 participants

Read full topic

via LINUX DO - 最新话题 (author: qijun)
上海立信会计金融学院明文储存密码

20 posts - 16 participants

Read full topic

via LINUX DO - 最新话题 (author: odhcus)

Invalid media: image
当我让Grok Claude 和 ChatGPT预测各家下一代模型发布时间...

写在前面:都看好Claude,Grok加入Grok-5之后果断支持自家模型,ChatGPT情商是真在线。

详:

----------------------

Grok

----------------------

ChatGPT

----------------------

Claude

2 posts - 2 participants

Read full topic

via LINUX DO - 最新话题 (author: cedric chen)

Invalid media:
image
image
image
image
image
image
【亲测有效】再分享一波xyz未注册的6位靓号

我一个一个的试过了,都能注册。有需要的可以去注册个。

----------------------

测试时间:

2025年10月30日12点07分

----------------------

666开头
666037.xyz
666053.xyz
666173.xyz
666305.xyz
666351.xyz
666507.xyz
666或888结尾
017666.xyz
031666.xyz
032666.xyz
037666.xyz
038666.xyz
072666.xyz
073888.xyz
073666.xyz
075666.xyz
059666.xyz
083666.xyz
093666.xyz
079666.xyz
207666.xyz
290666.xyz
308666.xyz
381666.xyz
501666.xyz
590666.xyz
705666.xyz
701666.xyz
702666.xyz
703666.xyz
710666.xyz
721666.xyz
751666.xyz
791666.xyz
803666.xyz
805666.xyz
902666.xyz

5 posts - 3 participants

Read full topic

via LINUX DO - 最新话题 (author: woshiwo)
这是怎么了?为什么举报我?为什么移除我的评论?

原帖子是这个:https://linux.do/t/topic/888279
注册之后,邀请码接龙。
然后今天收到了举报,评论被移除的消息!
我不明白,这是为什么。。。

10 posts - 9 participants

Read full topic

via LINUX DO - 最新话题 (author: liuyaowen)

Invalid media: image
1
【关闭ACE反作弊系统 保护你的电脑性能】 https://www.bilibili.com/video/BV1fXyUBjEC4/?share_source=copy_web&vd_source=85a5e4ddca27e42b4d0a22eb64c475c7

真是官号看起来
2 posts - 2 participants

Read full topic

via LINUX DO - 最新话题 (author: 𝓵𝓮𝔃𝓲𝓼𝓱𝓮𝓷)

Invalid media:
image
image
image
image
image
image
image
求助,佬友们有推荐的轻量级声音克隆项目吗?

是这样的,鼠鼠最近做一个视频英语对话转中文对话的,为了保证转中文对话后的情感和语气,所以涉及到了声音克隆技术。

我想请教一下佬们,有啥轻量级的,可集成到项目里调用的轻量级开源声音克隆项目吗?或者有啥推荐的大模型api进行调用?

10 posts - 4 participants

Read full topic

via LINUX DO - 最新话题 (author: AoManoh)
iPhone17Pro,百亿补贴8499,还是美团闪送8699带24期免息

如题,佬们觉得哪个比较划算啊

4 posts - 4 participants

Read full topic

via LINUX DO - 最新话题 (author: aze)
找了一圈没发现有sunov5的镜像站 是没有人2这个吗?

有没有佬见过的 可以推荐一下吗

4 posts - 3 participants

Read full topic

via LINUX DO - 最新话题 (author: lamb)
整首五言排律

花开依岁时,花满暗香垂。
闻说春园好,含嗔车马迟。
游人相继踵,看罢觉空疲。
胜景多幽隐,玄宗人少知。
浮云无本意,化雨客言悲。
花落何须道,阴晴不足奇。
一朝春气尽,翠叶减容姿。
惟有辨花趣,怪吾双泪滋。
天光衰鬓发,日月壮心移。
我性元疏懒,犹能唱靡词。
赋英愁强抱,耽酒待来仪。
廿四初忧世,营生易费思。
诗书惭弄笔,斗米笑低眉。
仄室淹年买,乘闲医体皮。
梦余怀旧事,春去惹嗟咨。
今拟寻常语,君听且莫嗤。

1 post - 1 participant

Read full topic

via LINUX DO - 最新话题 (author: 因是)
一口气撸了几十个 claude pro 一个月

官网现在注册免费送一个月pro
弄了一个域名邮箱 同邮箱同IP同卡全部放到crs里面 同代理
看看能活多久 抓紧撸起来

1 post - 1 participant

Read full topic

via LINUX DO - 最新话题 (author: ChinaDolphin)

Invalid media:
image
image
image
image
最近这个游戏特别火,我准备做一个相关网站

有没有佬友玩这个鸭子游戏的。帮我看下我应该往那个方面开发。

这个我做的:https://escapefromduckov.app/

目前已经做了三种语言:英文,中文,繁体。主要方向是各种图鉴数据。

2 posts - 2 participants

Read full topic

via LINUX DO - 最新话题 (author: 阿阳)

Invalid media:
image
image
image
求助佬友,关于职场刚遇到的困扰,领导邀请愿不愿意部门转岗

公司现在有两大部门,突然 A 部门领导打电话问要不要转部门,我回复的是听从公司领导安排,我个人都可以,从目前的态势看,A 的人越来越多,很多部门都转过去了,但我现在在 B 的部门,领导对我很好,绩效给的也好,现在不知道怎么办了,不知道要不要转

4 posts - 3 participants

Read full topic

via LINUX DO - 最新话题 (author: histore)
vaultwarden备份与恢复【GITHUB版】

https://linux.do/t/topic/1104736/9?u=dhb

之前一直都是定时手动导出备份,懒着弄备份到云盘(不熟 🤣

看到这位老友的备份到github的思路,开搞

前提

我的vaultwarden是使用docker部署的,数据库是sqlite3,所以下面提供的脚本也是基于这个环境

创建仓库

在vaultwarden的数据目录创建仓库,并添加**.gitignore** ,过滤一些不需要的文件,参考Backing up your vault · dani-garcia/vaultwarden Wiki · GitHub
db.sqlite3
db.sqlite3-shm
db.sqlite3-wal
icon_cache
sends

使用ssh,然后提交初始化仓库

脚本

用ai撸的,简单说明下作用

1. 执行 /vaultwarden backup 备份
2. 把备份文件重命名为backup.sqlite3
3. 判断是否有更新
4. 有的话提交到git、并tg通知

#!/bin/bash
# Vaultwarden + Git + Telegram backup script

# ===== 配置区 =====
VAULTWARDEN_CONTAINER="vaultwarden" # 你的容器名
BACKUP_FILE="backup.sqlite3"
TG_BOT_TOKEN="你的TG BOT TOKEN"
TG_CHAT_ID="你的tg id"
REPO_DIR="/root/vw-data" # 修改成你的仓库路径
# ===== END =====

cd $REPO_DIR || exit 1

echo "[$(date +"%Y-%m-%d %H:%M:%S")] Running Vaultwarden backup..."
docker exec -t $VAULTWARDEN_CONTAINER /vaultwarden backup > /dev/null 2>&1

if [ ! -f db_*.sqlite3 ]; then
echo "[$(date +"%Y-%m-%d %H:%M:%S")] Backup file not found, abort."
exit 1
fi

# 重命名文件
mv db_*.sqlite3 "$BACKUP_FILE"

# 检查是否有更新
git add .
if git diff --cached --quiet; then
echo "[$(date +"%Y-%m-%d %H:%M:%S")] No changes detected, skip commit and notification."
exit 0
fi

echo "[$(date +"%Y-%m-%d %H:%M:%S")] Git commit and push..."
git commit -m "update $(date +"%Y-%m-%d %H:%M:%S")"
git push

# TG 消息(仅在有更新时发送)
TG_MSG=" Vaultwarden Backup Completed
📅 $(date +"%Y-%m-%d %H:%M:%S")"

curl -s -X POST "https://api.telegram.org/bot${TG_BOT_TOKEN}/sendMessage" \
-d chat_id="${TG_CHAT_ID}" \
-d text="${TG_MSG}" > /dev/null

echo "[$(date +"%Y-%m-%d %H:%M:%S")] Done."


定时执行

1分钟执行一下,可以根据自己的实际情况调整
* * * * * /opt/backup.sh >> /opt/backup.log 2>&1

这里如果只是想保留最后一条执行记录的话,把 >> 改成 > 即可

恢复

备份出来的数据是这样的,只要把仓库clone下来,把 backup.sqlite3 改成 db.sqlite3 然后启动即可,比如我clone下来的仓库名是 vaultwarden-backup

执行的命令是
mv backup.sqlite3 db.sqlite3
docker run -d --name vaultwarden \
-v /root/vaultwarden-backup/:/data/ \
-p 8001:80 vaultwarden/server:latest

7 posts - 5 participants

Read full topic

via LINUX DO - 最新话题 (author: 李白)

Invalid media: image
我要吃魔芋爽

bilibili.com

吃了十年魔芋爽才画出来的_哔哩哔哩_bilibili

玲纱BGM:轻悠悠, 视频播放量 888、弹幕量 0、点赞数 205、投硬币枚数 45、收藏人数 28、转发人数 5, 视频作者 令时焥夏KiriAINa, 作者简介 |七色人偶使|PID:109808763 同名 |BA|東方| 同人创作中 不接稿,相关视频:初音未来不小心接触了我,这是她的身体发生的变化。。。,兄弟,要不你还是当我老婆吧。。。,真纪把颜料全倒进了美游的垃圾桶 |...

iframe (External Player - 哔哩哔哩嵌入式外链播放器)

6 posts - 3 participants

Read full topic

via LINUX DO - 最新话题 (author: stevessr⁧)

Invalid media:
image
image
image
关于苹果手机的安全疑问

我在AppStore下载安装了一个交友软件,然后对方跟我说让我不用自己注册,直接用他给的账号密码登录就行,我登上来以后,支付宝立刻跳出来提醒我,说我的账号因为违规被封禁3个月社交功能,我试了一下,支付宝里还可以转账,但不能聊天了。

我怀疑我的支付宝账号已泄露,目前更改了支付宝的密码。

到底为啥会发生这种事故,未来使用中我还有哪些应该注意的问题呢?

8 posts - 7 participants

Read full topic

via LINUX DO - 最新话题 (author: 林小朋)
gpt已经降智我的浏览器,怎么办

RT
有无办法,我目前的办法是直接换一个浏览器

6 posts - 4 participants

Read full topic

via LINUX DO - 最新话题 (author: Allyourneed)
GPT是不是也有送一个月的优惠?

在推特看到的,说gpt也有送plus一个月的活动,到底有没有,知道的说一下,谢谢。

6 posts - 4 participants

Read full topic

via LINUX DO - 最新话题 (author: joe198x)