03 2023 档案

摘要:0x01 最大连续子段和 1. 题目描述 给定我们一个数组,让我们求最大连续“非空”子段和。 2 贪心 + 递推 思路: 如果我们选取了 k 个数,并且他们的和小于 0 ,那么这 k 个数肯定全都不包含在最大连续子段中。因为它们肯定会使得和更小。 因此,我们可以使用递推的形式,贪心的选择每一个数,如 阅读全文
posted @ 2023-03-28 19:32 光風霽月 阅读(30) 评论(0) 推荐(0) 编辑
摘要:1. 题目描述 2022年天梯赛正赛 DIV2 2. 思路 首先认真读题,题目说的是每次送完外卖之后不必返回起点。 另外,需要送外卖的点是逐个添加,每添加一次都要算一次最短路。 我们假设一次性把所有点都添加了,此时如何求最短路呢? 如果说我们可以一条路走到黑而无需回头走的话,那么此时最短路就是最 阅读全文
posted @ 2023-03-27 14:12 光風霽月 阅读(16) 评论(0) 推荐(0) 编辑
摘要:0x00 竞赛 2023年中国高校计算机大赛-团队程序设计天梯赛(GPLT)上海理工大学校内选拔赛 0x01 dp 感觉很典型的 dp,但是我没做出来 题目大致就是说,我们有四个篮子(A,B,C,D),每次给我们四个数(a,b,c,d),我们可以选择一个数放到对应的篮子里。 篮子的大 阅读全文
posted @ 2023-03-27 13:44 光風霽月 阅读(64) 评论(0) 推荐(0) 编辑
摘要:1. 题目描述 给定我们一些有向边和无向边,判断在将所有无向边确定方向后,能否生成一个有向无环图 2. 思路 思路其实真的非常简单。 我根据题目给定的有向边做一次 topsort,如果失败,说明无论剩下的无向边在怎么确定方向,都不可能无环。 如果成功,那么我们便成功确定了拓扑序。那么对于剩下的没 阅读全文
posted @ 2023-03-27 13:02 光風霽月 阅读(17) 评论(0) 推荐(0) 编辑
摘要:0. ref 参考自 1. 题目描述 预定会议问题:给定我们一堆区间,区间不能重叠([1,2][2,3]2 不算重叠),求最多能保留多少个区间? 做法:贪心,按**【右端点】**排序。 为什么要按照右端点排序?反证,如果按照左端点排序,看下面的例子: |_________| 阅读全文
posted @ 2023-03-19 20:19 光風霽月 阅读(15) 评论(0) 推荐(0) 编辑
摘要:1. 题目描述 354. 俄罗斯套娃信封问题 2. 思路 非常明显的上升子序列问题。但是我在做的时候遇到了一个之前做 LCS 从来没考虑过的点。 之前都是直接排序,而无论是左端点优先还是右端点优先,假设左端点优先吧并且一般都是升序,我们一般是让右端点也升序的。 也就是说,左右端点都是升序的。做了 阅读全文
posted @ 2023-03-19 19:59 光風霽月 阅读(17) 评论(0) 推荐(0) 编辑
摘要:1. 题目描述 T4 2. 思路 其实本题非常简单。我们只需要知道一个概念:“同余”。 即:a==b(modc),我们称 ab 相等在 modc 意义下。 知道了这个点,那么题目就很好做了。 对于每 a,如果我们想通过 b 构造出来它,b 可以任意加减 $ 阅读全文
posted @ 2023-03-19 19:21 光風霽月 阅读(11) 评论(0) 推荐(0) 编辑
摘要:求组合/排列 当我们用背包求解组合问题时,即对于解 {1,1,2} 和解 {1,2,1},它们是等价的,我们需要先枚举物品,再枚举体积。 当我们用背包求解排列问题时,即对于解 {1,1,2} 和解 {1,2,1},它们不是等价的,我们需要先枚举体积,再枚举物品。 一般 阅读全文
posted @ 2023-03-19 09:59 光風霽月 阅读(9) 评论(0) 推荐(0) 编辑
摘要:1. 题目描述 元素可重复的旋转数组的最小值 2. 思路 ref 对二分的奇怪知识增加了! 需要注意的一点是,由于我们在二分过程中改变了 r 的位置,因此不能一直使用预先存放的 nums[r]! 3. 代码 /* 本题与 153 题的区别在于,有重复元素 如果有重复元素,我们就无法确定左右区 阅读全文
posted @ 2023-03-18 19:56 光風霽月 阅读(12) 评论(0) 推荐(0) 编辑
摘要:0x01 跳表 题目描述 跳表介绍 0x02 LRU 题目描述 0x03 用两个栈实现队列 题目描述 阅读全文
posted @ 2023-03-18 16:25 光風霽月 阅读(6) 评论(0) 推荐(0) 编辑
摘要:1. 题目描述 丑数 2. 思路 很明显,丑数就是 2,3,5 的乘积组合。 最一开始,我竟然傻傻的 dfs + set 来求解,其实仔细想想,dfs 肯定是不行的,因为 dfs 会一条路走到黑。 理想情况下,我们希望每个丑数都按位置放置,而不是跳着来的,例如,6 之后的丑数 阅读全文
posted @ 2023-03-18 14:30 光風霽月 阅读(11) 评论(0) 推荐(0) 编辑
摘要:1. 题目描述 查找满足劳累天数严格大于不劳累天数的最大子区间 2. 思路 对于区间问题,很容易先想到前缀和帮助我们优化。 我们可以设,劳累=1,不劳累=1,那么,就是求最大的子区间 [left,right] 使得 s[right]-s[left]-1>0 成立。 其实我们是很容易想到二分 阅读全文
posted @ 2023-03-16 21:31 光風霽月 阅读(17) 评论(0) 推荐(0) 编辑
摘要:有层数限制时,推荐 BFS look at here 阅读全文
posted @ 2023-03-15 15:33 光風霽月 阅读(10) 评论(0) 推荐(0) 编辑
摘要:1. 题目描述 题目给定我们一个数组,我们每次可以对数组的一段区间加一或者减一,问我们,使得序列所有数字相等的最少操作次数以及方案个数 2. 思路 很容易想到差分,将题目转化为(假设数组下标从 1 开始),最少的操作次数,使得差分数组 s[2] ~ s[n] = 0 的最少操作次数,s[1] 就 阅读全文
posted @ 2023-03-14 18:58 光風霽月 阅读(17) 评论(0) 推荐(0) 编辑
摘要:1. 题目描述 给定我们一些初始作物,和作物之间杂交的规则(作物 a 和作物 b 杂交产生种子 c,花费作物 a 和作物 b 成熟时间的最大值),让我们求,某个作物 T 出现的最小时间 2. 思路 建图 最短路应该是可以看出来的,但是对于给定的规则,作物 a 和作物 $b 阅读全文
posted @ 2023-03-14 17:34 光風霽月 阅读(12) 评论(0) 推荐(0) 编辑
摘要:一、dijkstra 不能求带负权最短路 我们知道,dijkstra 算法在求最短路是基于贪心思想的:每次选取一个点出队,从起点点到这个点的距离一定是最短的(其实就是,dijkstra 很呆,它简单而又固执的认为,边的个数越多,你的总长度肯定更长!)。然后用这个点来更新其余的 阅读全文
posted @ 2023-03-12 14:55 光風霽月 阅读(205) 评论(0) 推荐(0) 编辑
摘要:发现 bug 的题目 bug 代码 void get_primes(int n) { for(int i = 2; i < n; i ++ ) { if(!st[i]) primes[idx ++ ] = i; for(int j = 0; primes[j] < n / i ; j ++ ) // 阅读全文
posted @ 2023-03-11 11:12 光風霽月 阅读(11) 评论(0) 推荐(0) 编辑
摘要:1. 适用题目描述 给定我们一个数组,让我们求满足某些条件的连续子数组的个数。 注意,必须连续。 另外,子数组可能有很多限制,例如常见的:非空。 还有一些特殊的比如:大小至少为2等 2. 大体思路 - 前缀和 + 哈希表 从暴力的角度出发,因为是连续数组,所以我们可以通过枚举左右端点 [l,r] 阅读全文
posted @ 2023-03-10 16:34 光風霽月 阅读(351) 评论(0) 推荐(0) 编辑
摘要:1. 题目描述 这题题意感觉说的不是很清楚,容易让人产生歧义!其实题意很简单,给你一个链表 head,你深拷贝它,然后返回即可,注意不能修改原链表 /* // Definition for a Node. class Node { public: int val; Node* next; Node* 阅读全文
posted @ 2023-03-07 09:47 光風霽月 阅读(12) 评论(0) 推荐(0) 编辑
摘要:1. 题目描述 剑指 Offer 44. 数字序列中某一位的数字 2. 思路 完全借鉴的参考思路。补位思想。 首先,什么是(数字的)补位。 试想这么一种情况,所有数字的位数都相同,什么意思呢?例如:1222 他们的位数是不相同的,11 位,222 是三位,我们可以通过添加前置 阅读全文
posted @ 2023-03-07 09:04 光風霽月 阅读(13) 评论(0) 推荐(0) 编辑
摘要:problem1 1. 题目描述 一个整型数组 nums 里除两个数字之外,其他数字都出现了两次。请写程序找出这两个只出现一次的数字。要求时间复杂度是O(n),空间复杂度是O(1)。 2. 思路 找一个不同点,将所有数字分为两类。 其中,两个只出现一次的数字各出现在一个集合当中。 如何找最后一个不同 阅读全文
posted @ 2023-03-06 13:07 光風霽月 阅读(13) 评论(0) 推荐(0) 编辑
摘要:1. 题目描述 剑指 Offer 26. 树的子结 2. 思路 1.暴力,枚举 A 中的每个节点,对于该节点 dfs 查找 B,时间复杂度为 O(N2)N 为节点数。经典的 dfsdfs,爆搜出奇迹!当然,爆搜归爆搜,不要忘了剪枝。小小的剪枝大大的优化。 2.好 阅读全文
posted @ 2023-03-06 13:05 光風霽月 阅读(17) 评论(0) 推荐(0) 编辑
摘要:1. 题目描述 和为s的连续正数序列 2. 思路 O(N) 数学做法。 等查求和公式,求根公式:b±bb4ac2a 求根公式在不少题目中的优化做法可能用到,但是需要注意,求根公式有乘法运算,对于数据比较大时,可能会溢出,这一点要格外小心。 O(N) 阅读全文
posted @ 2023-03-06 11:36 光風霽月 阅读(10) 评论(0) 推荐(0) 编辑
摘要:1. 题目描述 打印蛇形矩阵 2. 思路 状态机模拟 我称之为模拟优化,因为代码少,简洁,优化 3. 代码(模拟优化) class Solution { public: vector<int> spiralOrder(vector<vector<int>>& matrix) { int n, m; 阅读全文
posted @ 2023-03-06 10:57 光風霽月 阅读(10) 评论(0) 推荐(0) 编辑
摘要:1. 题目描述 圆圈中最后剩下的数字 2. 约瑟夫环 人们站在一个等待被处决的圈子里。 计数从圆圈中的指定点开始,并沿指定方向围绕圆圈进行。 在跳过指定数量的人之后,处刑下一个人。 对剩下的人重复该过程,从下一个人开始,朝同一方向跳过相同数量的人,直到只剩下一个人,并被释放。 3. 思路 下面主要是 阅读全文
posted @ 2023-03-05 11:18 光風霽月 阅读(12) 评论(0) 推荐(0) 编辑
摘要:剪绳子I 1. 题目描述 dp 2. 思路 这题的思路还是比较简单的,就是划分子区间,一个长度为 k 的绳子,我们可以将其划分为 i + j,(i>=0j>=0)。 我们用 f[k] 表示长度为 k 的绳子划分长度之后的最大乘积,则: $f[i] = max(f[i], f 阅读全文
posted @ 2023-03-05 10:30 光風霽月 阅读(13) 评论(0) 推荐(0) 编辑
摘要:## 1. 题目描述 > [spfa判断负环](https://www.acwing.com/problem/content/description/854/) > > [LC 设计循环队列](https://leetcode.cn/problems/design-circular-queue/) 阅读全文
posted @ 2023-03-04 20:16 光風霽月 阅读(12) 评论(0) 推荐(0) 编辑
摘要:一、SQL 对数据库的操纵 创建数据库 CREATEDATABASE`NAME`; CREATEDATABASEIFNOTEXISTS`NAME`; database不要写为databaes ifnotexist 必须放在 `NAME` 的前面 加上` `可以避免与关键词重名 删除数据库 DROP 阅读全文
posted @ 2023-03-01 17:14 光風霽月 阅读(109) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示