自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(15)
  • 收藏
  • 关注

原创 c++ map用法以及注意

map的实现基于红黑树,因此它的插入、删除和查找操作的时间复杂度都是O(log n)。

2024-01-22 13:36:51 509

原创 01背包和完全背包

基本的想法是创建一个二维表格,其中一维代表每个物品,另一维代表背包的当前容量。与0/1背包问题不同的是,完全背包问题中每个物品可以被分割成任意数量的小物品来装入背包。也就是说,你可以选择任意数量的每个物品,只要它们的总重量不超过背包的容量。在这两个例子中,W 是背包的容量,wt 是物品的重量列表,val 是物品的价值列表,n 是物品的数量。用动态规划解决0/1背包问题的基本思路是,创建一个二维表格,其中一维代表每个物品,另一维代表背包的当前容量。通过填写每个物品在每个容量下的最大价值,最后可以找到最优解。

2023-08-05 10:16:54 49 1

原创 萌新联赛(郑州大学)

x&y=a则a&x和a&y也为a,所以只用判断(s-a)&a是否等于a即可。a,b两种属性可以分开考虑,回旋镖可以不用完。最后再算用几次a中最大的即可。注意sqrt以及转数据类型。如果b>a的最小的则直接用。

2023-07-27 17:07:48 103 2

原创 力扣训练9

把原数据复制一遍再排序,用map把数值和排名一一对应,注意to_string。703数据流中的第 K 大元素。

2023-07-14 21:31:14 61 2

原创 萌新联赛1

注意0的位置以及其周围的数有3个1则++,注意输出。

2023-07-13 22:16:15 36 1

原创 力扣训练8

/stoi将数字字符串转换成int输出 substr(i,2)从i开始到后面两位结束。//将s[i - 2] 和 s[i - 1]组合解码。//单独解码s[i - 1]先以s中的每个字符作为键,检查是否能够一一对应t中的每个字符,然后再反过来以t中的字符作为键检查一遍。

2023-07-13 21:24:17 43 1

原创 牛客训练7

插入屏障后,区间被分为[1,x]和[x+1,n]两个部分。可以利用栈来求出前缀的对数和、后缀的对数和,前缀和表示连续下降的山的个数,后缀和同理。然后在一个for循环来寻找最大值,减少的最大防守力就是[1,n] - [1,x] - [x+1,n],最优的屏障放置位置就是当前的x+1。用stack模拟即可。

2023-07-11 21:55:56 55

原创 力扣训练6

对3个较为特殊的的取值,即0, 1, -1进行额外判断。//判断队列是否为空,空 返回false。使用递归求解,每次计算x^(n/2),并乘上额外的值。int num=0;int size=0;int end=-1;

2023-07-11 17:00:52 43

原创 力扣训练5

又因为无序区间内的最小值比第一区间所有值都大,最大值比第三区间所有值都小,所以我们可以简单找出一个无序区间,然后通过二分法快速找出最小需要排序区间的真正大小。数组中找到两个数,使得它们的和等于目标值,可以首先固定第一个数,然后寻找第二个数,第二个数等于目标值减去第一个数的差。如果与当前记录的结果now相与不为0,那么加入的这个数不满足条件,需要将滑动窗口左边往右移,对于每一个离开窗口的数,用记录的窗口结果now与其做异或运算。从左往右枚举,枚举时h滑动窗口维护一个当前所有数的或的结果(填充所有的。

2023-07-09 23:29:47 44 1

原创 力扣训练4

(2)答案在数组两边,例如[5,-3,5]最大的子序和就等于数组的总和SUM-最小的子序和。(一种特殊情况是数组全为负数,也就是SUM-最小子序和==0,最大子序和等于数组中最大的那个)。需要对滑入窗口的数据记录,滑出的数据删除,并且使这些记录方便的算出最大值和最小值。(1)答案在数组中间,就是最大子序和。例如[1,-2,3,-2];使用滑动窗口保持符合条件的子数组,记录最长的长度。对于环形数组,分两种情况。然后知道数组最大值和最小值。

2023-07-07 21:42:01 37 1

原创 力扣训练3

将字符串中每个字符的 ASCII 码的值求和,得到num1,再把另一个字符串求和得到num2;相减的值即为所求字母的ASCII 码的值。先把数组中的元素存到哈希表中如果哈希表中没有这个数字就存下一个数字,再次在找哈希表中找这个数,找到就返回真,在遍历的过程中如果满足的区间子串可以由中的单词拼接而成,即。并且中存在一个单词和的区间子串相同,就更新。用滑动窗口解决,假设窗口为ABC,当后面的a进入这个窗口时,窗口左边的a删除,依次找出最大的长度。状态转移公式:dp[i+len(word)] = dp[i]。

2023-07-06 22:29:36 34 1

原创 力扣训练2

首先我们定义一个堆栈来储存下标(因为这样可以直接计算出天数差),接着只要当前的温度大于栈中最上面的温度就出栈,而当前下标减掉对应温度的下标即是天数差 最后我们将栈中剩余的下标全部赋零,因为他们后面都没有比他们大的温度了。先判断字符串长度是否为偶数然后把左括号压入栈中再看右括号能不能适配,如果不能适配或者没有左括号则返回false,遍历结束后如果没有左括号了,返回true。如果遍历到的值比栈顶小,那么此时的栈顶元素一定就是我们要找的第一个比遍历值大的数。如果遍历到的值比栈顶大,那么我们直接将栈顶弹出。

2023-07-06 00:04:45 50 1

原创 力扣训练题

先判断字符串长度是否为偶数然后把左括号压入栈中再看右括号能不能适配,如果不能适配或者没有左括号则返回false,遍历结束后如果没有左括号了,返回true。首先将 节点的值加入答案,然后递归调用 来遍历 节点的左子树,最后递归调用 来遍历 节点的右子树即可,递归终止的条件为碰到空节点。589. N 叉树的前序遍历。

2023-07-04 22:21:30 27

原创 日期问题(洛谷P8651)蓝桥杯省B

时间问题!

2023-03-11 17:45:07 330

原创 时间复杂度

时间复杂度是衡量算法执行效率的指标,表示算法的运行时间与问题规模之间的增长关系。时间复杂度可以帮助我们评估算法的效率,预测算法在不同规模数据输入下的运行时间。通常情况下,我们希望算法的时间复杂度越小越好,因为这意味着算法的执行效率越高。对于一些简单的算法,我们可以手动计算出它的时间复杂度;但需要注意的是,时间复杂度并不是算法效率的唯一指标,还需要考虑算法的空间复杂度、实现复杂度、稳定性等因素。例如,对于一个数组来说,如果算法中使用了一个循环来遍历数组,那么时间复杂度就是 O(n),其中 n 是数组的长度。

2023-03-11 16:55:50 572

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除