- 博客(35)
- 收藏
- 关注
原创 leetcode 每日一题 3439. 重新安排会议得到最多空余时间 I
题目要求在给定的活动时间范围内,通过重新安排至多k个会议的时间(保持时长和相对顺序不变),最大化相邻会议之间的最长连续空余时间。算法思路是:添加边界会议后,计算每个会议的时长,然后通过滑动窗口枚举所有可能的连续k个会议组合,计算移动后能获得的最大间隔。具体实现中,使用前缀和数组快速计算会议总时长,最终遍历所有窗口得到最大空余时间。时间复杂度为O(n),空间复杂度O(n)。
2025-07-09 12:11:46
430
原创 【leetcode】1751. 最多可以参加的会议数目 II
摘要: 该问题要求在给定的会议列表中,选择最多k个不重叠的会议,使总价值最大。解决方法采用动态规划,将会议按结束时间排序后,定义状态f[i][j]表示前i个会议中选择最多j个的最大价值。通过二分查找确定当前会议可接续的最早结束会议,实现状态转移。时间复杂度为O(nk log n),其中n是会议数量。示例代码展示了C++和Go的实现,均通过排序预处理和动态规划求解,最终返回f[n][k]作为最大价值总和。
2025-07-08 12:58:01
398
原创 leetcode 每日一题 1353. 最多可以参加的会议数目
摘要:本文解决LeetCode 1353题,即如何安排参加最多活动的问题。每个活动有开始和结束日期,每天只能参加一个活动。采用贪心算法,优先参加最早结束的活动。使用优先队列动态维护当前可参加的活动,每天处理过期活动并加入新活动,选择最早结束的活动参加。时间复杂度为O(n log n),适用于大规模数据。示例显示该方法能正确计算最大可参加活动数。
2025-07-07 12:26:40
198
原创 leetcode 每日一题 1865. 找出和为指定值的下标对
本文提出了一种支持两种操作的数据结构:1) 将值加到nums2指定元素上;2) 统计满足nums1[i]+nums2[j]=指定值的下标对数目。关键思路是利用数组长度差异,其中nums1较短(≤1000),nums2较长(≤10^5)。有两种实现方法:方法一遍历nums1,查询nums2的计数器;方法二维护两个计数哈希表。两种方法在add操作时都更新nums2计数,count操作时通过互补值查找满足条件的对数。时间复杂度:add为O(1),count为O(nums1.length)或O(unique(num
2025-07-06 12:06:52
445
原创 【leetcode每日一题】3304. 找出第 K 个字符 I
摘要:题目要求找出字符串游戏中第k个字符的值。初始字符串为"a",每次操作将当前字符变为下一个字母并追加到原字符串,'z'变为'a'。研究发现,结果字符串的字符生成规律可转化为二进制问题:第k个字符的值为k的二进制表示中1的个数加上末尾0的个数减1,对26取模后转换为字母。例如,k=5(101₂)对应1+1-1=1,即字母'b'。该解法利用位运算高效求解。
2025-07-03 12:08:51
376
原创 docker安装elasticsearch和kibana
本文介绍了使用Docker Compose部署Elasticsearch 8.18.2和Kibana 8.18.2的配置方法。重点包括:1) 使用相同的版本号确保兼容性;2) Elasticsearch单节点配置,包括内存设置、安全认证和数据卷挂载;3) Kibana中文界面配置及与Elasticsearch的连接方式;4) 针对Elasticsearch 8.0+版本的安全改进,详细说明了如何生成并使用服务账号令牌(Service Account Token)替代传统账号密码认证;5) 提供了两种配置服务
2025-06-28 15:16:52
398
原创 frp v0.62.1内网穿透搭建和使用
frp是一款开源的快速反向代理工具,支持TCP/UDP/HTTP/HTTPS协议,可将内网服务穿透NAT公开到公网,并提供P2P连接模式。本文介绍了frp的部署方法:服务端(frps)需修改配置文件设置监听端口、仪表盘、认证token等参数,可通过systemd注册为服务;客户端(frpc)需配置服务器地址、相同token认证及代理规则。Windows平台可使用NSSM注册服务。部署后可在服务端仪表盘监控连接状态。项目官网提供详细文档,适用于各类内网穿透场景。
2025-06-22 16:30:29
448
原创 C++ STL常用用法总结
顺序容器 (Sequence Containers)这些容器用于存储和管理一组有序的元素。:动态数组,支持快速的随机访问,插入和删除操作在末尾最有效。std::deque:双端队列,支持快速的头部和尾部插入、删除操作,同时也支持随机访问。std::list:双向链表,插入和删除操作在任何位置都很高效,但不支持随机访问。:单向链表,与std::list类似,但只支持单向遍历,占用更少的内存。std::array:定长数组,容量固定,大小在编译时确定。:专门用于管理字符序列,可以看作是的增强版。
2024-11-27 20:50:54
1000
原创 CodeTON Round 9 (Div. 1 + Div. 2) C1C2解题
CodeTON Round 9 (Div. 1 + Div. 2) C1C2解题 【数论】
2024-11-24 19:18:23
1016
原创 Codeforces Round 988 (Div. 3) 前4题解题 (详细版)
Codeforces Round 988 (Div. 3) 前4题解题 (详细版)
2024-11-18 17:49:29
861
原创 Codeforces Round 987 (Div. 2) ABCD 前4题解题(详细解答过程版)
Codeforces Round 987 (Div. 2) 前4题解题 详细解答版
2024-11-16 12:47:00
2104
原创 【Clion】 配置远程 Linux 开发环境
【Clion】 配置远程 Linux 开发环境,在windows上实现Linux开发,代码自动补全
2024-11-15 18:10:56
910
原创 Refact.ai Match 1 (Codeforces Round 985) 前3题解题
Refact.ai Match 1 (Codeforces Round 985)前3题解题【区间DP】
2024-11-10 17:43:40
1929
原创 Codeforces Round 983 (Div. 2) (contest/2032) 前3题解题【详细版】
Codeforces Round 983 (Div. 2) (contest/2032) 前3题解题【详细版】
2024-11-02 14:48:02
654
原创 Quartus18.1报错【Error (199014):Vector source file ./Waveform.vwf】
Quartus18.1报错【Error (199014):Vector source file ./Waveform.vwf】
2024-10-16 23:19:33
2330
1
原创 【codeforce】第170场比赛(Contest 2025) 前3题解题
【codeforce】第170场比赛(Contest 2025) 前3题解题
2024-10-15 01:23:32
790
原创 Java创建线程的三种方式
继承Thread,Java对继承不友好,(不推荐使用)实现Runnable接口,Java编程友好,但无法返回执行后数据实现Callable接口,可以返回多线程执行结果,编程稍显复杂创建线程的三种方式在Java中,创建线程是实现并发编程的基础。Java提供了多种方式来创建和管理线程,主要包括以下三种常见的方法:继承Thread类实现Runnable接口实现Callable接口并使用FutureTask。
2024-10-02 21:40:03
360
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人