454. 四数相加 II 题目链接:https://leetcode.cn/problems/4sum-ii/ 题目难度:中等 文章讲解:https://programmercarl.com/0454.四数相加II.html 视频讲解: https://www.bilibili.com/video/ ...
比赛链接 A T469715 [2024迎新马拉松] 101 相当于选择一段长度为 \(3k\) 的区间使得变化的总值最小。维护每一个元素变化到 \(1\) 与 \(0\) 的要求数量,之后前缀和处理即可。 #include <bits/stdc++.h> #define endl "\n" usi ...
242. 有效的字母异位词 题目链接:https://leetcode.cn/problems/valid-anagram/ 题目难度:简单 文章讲解:https://programmercarl.com/0242.有效的字母异位词.html 视频讲解: https://www.bilibili.c ...
讲真牛客这次的直播录屏讲得挺烂的(暴论),板书烂,表达烂... 求 \(1\sim x\) 的异或和 当然,求异或和本质上是求每一位的二进制值。 前置知识: 和十进制一样,二进制下最左边是高位,最右边是低位; 异或和计算中,偶数个 \(1\) 结果为,反之为 1。 循环周期推导 接下来推导为什么异或 ...
704. 二分查找 题目链接:https://leetcode.cn/problems/binary-search/ 题目难度:简单 文章讲解:https://programmercarl.com/0704.二分查找.html 视频讲解: https://www.bilibili.com/video ...
A - Insert (abc361 A) 题目大意 给定一个数组\(a\)和数 \(k,x\),将 \(x\)插入第 \(k\)个数之后,并输出新数组。 解题思路 用\(vector\)的直接 \(insert\)即可。 神奇的代码 #include <bits/stdc++.h> using n ...
LRU(Least Recently Used,最近最少使用)算法是一种常用于缓存管理的算法,用于在缓存空间有限的情况下,决定哪些数据应该被移除。它的基本思想是:如果一个数据最近被访问过,那么在将来一段时间内它被再次访问的概率较高。因此,当缓存已满,需要移除数据时,优先移除那些最近最少被使用的数据。 ...
24.两两交换链表中的节点 题目链接:https://leetcode.cn/problems/swap-nodes-in-pairs/ 题目难度:中等 文章讲解:https://programmercarl.com/0024.两两交换链表中的节点.html 视频讲解: https://www.bi ...
理论 我们需要一个数据结构维护树上的问题,仿照序列上的问题,我们需要一个方法快速的刻画出信息。 比如说线段树就通过分治的方式来通过将一个区间划分成 \(\log n\) 个区间并刻画出这 \(\log n\) 个区间的信息。 然后我们考虑把这个东西放到树上类比。你发现线段树上每个非叶节点都有两个儿子 ...
203.移除链表元素 题目链接:https://leetcode.cn/problems/remove-linked-list-elements/ 题目难度:简单 文章讲解:https://programmercarl.com/0203.移除链表元素.html 视频讲解: https://www.b ...
977.有序数组的平方 题目建议: 本题关键在于理解双指针思想 题目链接:https://leetcode.cn/problems/squares-of-a-sorted-array/ 题目难度:简单 文章讲解:https://programmercarl.com/0977.有序数组的平方.html ...
随机数对程序设计来说很重要,今天就从几方面探讨下一些常见的随机数相关的问题。 本文只讨论整数相关的随机数,另外需要你对概率论有最基本的了解(至少知道古典概型是什么)。 本文索引 如何从rand7生成rand5 go标准库的做法 从rand5生成rand7 充分利用每一个bit 带有权重的随机数 随机 ...
A - A Healthy Breakfast (abc360 A) 题目大意 给定一个字符串包含RMS,问R是否在S的左边。 解题思路 比较R和S的下标,谁小即谁在左边。 神奇的代码 #include <bits/stdc++.h> using namespace std; using LL = ...
顾名思义,混合背包就是将前面三种的背包问题(01,完全,多重)混合起来,有的只能取一次,有的能取无限次,有的只能取 k 次。 正解 特解 部分情况下,如小数据,可以转换成多重背包(把完全情况的数量换成足够大,如1e7,就把完全相对变成了多重) 例题 https://www.luogu.com.cn/ ...
完全背包模型与 0-1 背包类似,与 0-1 背包的区别仅在于一个物品可以选取无限次,而非仅能选取一次。 而状态转移方程于01背包区别在于可以直接从[i][j-w[i]]转移 理由是当我们这样转移时,[i][j-w[i]]已经由 [i][j-2*w[i]]更新过,那么 [i][j-w[i]]就是充分 ...
A - Count Takahashi (abc359 A) 题目大意 给定\(n\)个字符串,问有多少个字符串是Takahashi 解题思路 注意判断比较即可。 神奇的代码 #include <bits/stdc++.h> using namespace std; using LL = long ...
题目 假设有如下字符串“A12”,其中“A”表示数据类型(A-Z),“12”表示数据序号(0-9)。现在需要对一组数据先按照数据序号再按照数据类型进行排序。 例如:["B3","D2","F1","A9","D12","A2","C1","Z0","B1"]=>["Z0","B1","C1","F1 ...
题目链接 一、题目描述 1. 题目 有一个单链表的 head,我们想删除它其中的一个节点 node。给你一个需要删除的节点 node 。你将 无法访问第一个节点 head。 链表的所有值都是 唯一的,并且保证给定的节点 node 不是链表中的最后一个节点。删除给定的节点。注意,删除节点并不是指从内存 ...
文章小结 写在最前面,本文主要介绍了如何能快速判断代码段的时间复杂度(记忆模版),如果您寻找的并非此类文章则不必继续阅读后文。 1.算法时间复杂度是什么 官方定义:算法在编写成可执行程序后,运行时所需要的时间资源。 解读:可执行程序运行所需要时间的一个量化指标。例如O(1),常量级。 2. 常见的时 ...
目录线性表顺序表单链表循环单链表栈和队列顺序栈链栈队列树与二叉树二叉树的遍历中序遍历,非递归并查集哈夫曼树串KMP图深度优先搜索与广度优先搜索拓扑排序克洛斯卡尔最小生成树弗洛伊德最短路排序快速排序直接插入排序希尔排序简单选择排序冒泡排序杂项求树的叶子结点个数求二叉树的宽度求二叉树的高度单链表逆置 线 ...