分量 算法 笔记tarjan
【算法题】移除元素
题目来源 给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。 不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。 元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。 0 <= nums.leng ......
【算法题】合并两个有序数组
💎题目来源 💎题目描述: 给你两个按 非递减顺序 排列的整数数组 nums1 和 nums2,另有两个整数 m 和 n ,分别表示 nums1 和 nums2 中的元素数目。 请你 合并 nums2 到 nums1 中,使合并后的数组同样按 非递减顺序 排列。 注意:最终,合并后数组不应由函数返 ......
【算法题】买卖股票的最佳时机
题目链接 给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。 你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。 返回你可以从这笔交易中获取的最大利润。如果你不能获取任何利润, ......
【算法】质数的判断与筛法
质数定义 不能被 \(2,3,...,n-1\) 整除的自然数 \(n\) 称之为素数,或质数。 判断单个质数 isPrime 那是不是一定要判断从 2 到 n-1 每个数能否整除 n 呢? 答案是不需要。 如果 k 整除 n,那么 n/k 也整除 n,它两位于 \(\sqrt n\) 两侧,判断了 ......
【算法题】买卖股票的最佳时机Ⅱ
题目链接 给你一个整数数组 prices ,其中 prices[i] 表示某支股票第 i 天的价格。 在每一天,你可以决定是否购买和/或出售股票。你在任何时候 最多 只能持有 一股 股票。你也可以先购买,然后在 同一天 出售。 返回 你能获得的 最大 利润 。 1 <= prices.length ......
【算法题】删除有序数组中的重复项
题目链接 思路1:使用set。 /** * @param {number[]} nums * @return {number} */ var removeDuplicates = function(nums) { const uniqueSet=new Set(); for(let i=0;i<nu ......
【算法题】删除有序数组中的重复项Ⅱ
题目来源。 给你一个有序数组 nums ,请你 原地 删除重复出现的元素,使得出现次数超过两次的元素只出现两次 ,返回删除后数组的新长度。 不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。 思路1:移动元素法。从后遍历数组,计数元素重复次数,当遇到不重 ......
【算法题】1163.按字典序排在最后的子串
题目链接 给你一个字符串 s ,找出它的所有子串并按字典序排列,返回排在最后的那个子串。 1 <= s.length <= 4 * \(10^5\) s仅含有小写英文字符。 最关键的是处理时间复杂度,怎么让他小于\(O(n^2)\)。 双指针法: /** * @param {string} s * ......
【算法题】 O(1) 时间插入、删除和获取随机元素 JavaScript
题目链接 实现RandomizedSet 类: RandomizedSet() 初始化 RandomizedSet 对象 bool insert(int val) 当元素 val 不存在时,向集合中插入该项,并返回 true ;否则,返回 false 。 bool remove(int val) 当 ......
腾讯游戏客户端公开课笔记——UMG系统
UE4提供的界面开发系统 HUD Slate (UE4早期版本的UI系统) 缺点:用来“编写”界面布局非常麻烦 UMG (Unreal Motion Graphics UI Designer) 基于Slate,有图形开发界面(编辑器中) UMG 基本概念 1. 控件 Widget 预先封装好的功能单 ......
算法题解——买卖股票的最佳时机
解题思路 先考虑最简单的「暴力遍历」,即枚举出所有情况,并从中选择最大利润。设数组 prices 的长度为n,由于只能先买入后卖出,因此第 1 天买可在未来n−1天卖出,第 2 天买可在未来n - 2天卖出……以此类推,共有 \[(n - 1) + (n - 2) + \cdots + 0 = \f ......
[学习笔记]强连通分量
定义 什么是强连通分量?直白地说就是在一个有向图中,有一块区域,每个点都可以互相抵达。这里用一张图来说明一下。 图中的 \(1, 2, 3\) 是一个强连通分量,因为他们可以互相抵达。 Tarjan 算法 如何求强连通分量,最有名且最常用的就是 Tarjan 算法。 先给出如下定义: \(dfn_u ......
2023_10_14_MYSQL_DAY_05_笔记
2023_10_14_MYSQL_DAY_05_笔记 https://www.cnblogs.com/tdskee/p/16536166.html { MySQL的优化多种方法(至少15条) } #查看触发器 show triggers; #删除触发器 drop trigger 触发器名; #建立触 ......
学习笔记五
第11章 EXT2文件系统 EXT2文件系统数据结构: EXT2文件系统使用一些关键的数据结构来组织文件和目录的存储和访问。以下是EXT2文件系统中常见的数据结构: 超级块(Superblock):是文件系统的起始部分,包含关键的元数据,如文件系统的大小、块的数量、inode(索引节点)的数量等信息 ......
【Flask笔记】
hello world from flask import Flask app = Flask(__name__) @app.route("/") def hello_world(): return "<h1>哈哈</h1>" # 括号中的参数使得同一网络下的所有设备都可以访问该服务器(不过我试了下 ......
【算法笔记】 数位dp (例题是 [SCOI2009] windy 数)
数位dp 引入 数位 :是指把一个数字按位数一位一位地拆开,关注它每一位上的数字。如果拆的是十进制数,那么每一位数字都是 0~9,其他进制可类比十进制,就比如 链接: [SCOI2009] windy 数的二进制同理。 常见特征 要求统计满足一定条件的数的数量(即,最终目的为计数); 这些条件经过转 ......
【图论】最近公共祖先 学习笔记
LCA 基本概念 对于一个有根树,如果点 \(z\) 既是点 \(x\) 的祖先,又是点 \(y\) 的祖先,则说点 \(z\) 是 \(x\) 和 \(y\) 的公共祖先。每对点的所有公共祖先里,深度最大的那个点被称作这两个或多个点的最近公共祖先(lca)。 lca 有很多优秀的性质,例如经过 l ......
一.排序算法---快速排序
1.快速排序 1)快速排序(自定义实现) Quick_Sort 函数:它采用一个整数数组 arr,以及两个索引 begin 和 end,表示排序范围的起始和结束位置。如果 begin 大于或等于 end,则数组无需排序,因此直接返回。否则,它选择一个基准元素(通常是数组的第一个元素),然后通过比较和 ......
Java 深度优先搜索 and 广度优先搜索的算法原理和代码展示
111. 二叉树的最小深度 题目:给定一个二叉树,找出其最小深度。最小深度是从根节点到最近叶子节点的最短路径上的节点数量。 说明:叶子节点是指没有子节点的节点。 方法1:深度优先搜索 原理:深度优先搜索(Depth First Search)是一种遍历图的算法,它从图中的某个顶点出发,沿着一条路径不 ......
学习笔记5
苏格拉底挑战 第十一章 EXT2文件系统 一.知识点归纳 (一)EXT2文件系统数据结构 1.通过 mkfs 创建虚拟磁盘 在 Linux 下,命令 mke2fs [-b blksize -N ninodes] device nblocks 在设备上创建一个带有 nblocks 个块(每个块大小为 ......
算法0506 对数器 二分搜索
对数器 非常重要的自我验证代码正确性的方法 在面试时或机试时写算法题,没有测试用例或者测试用例太少,导致巨大的数据量无法进行测试时。需要自己写测试用例数据时可以使用对数器。 ......
算法讲解0304
1、打印二进制 void print(int num) { for(int i = 31; i >= 0; i--) if((num &(1 << i)) == 0) cin>>0; else cin >> 1; } 2、选择排序 void selectionSort(int arry[]) { i ......
C++基本算法大致总结
排序算法: 快速排序(Quick Sort):使用std::sort或自定义实现。 归并排序(Merge Sort):自定义实现或使用std::stable_sort。 堆排序(Heap Sort):自定义实现或使用std::make_heap和std::sort_heap。 搜索算法: 二分查找( ......
《敏捷软件开发宣言》阅读笔记二
敏捷软件开发宣言的核心内容 敏捷软件开发的原则 《敏捷软件开发宣言》提出了四个基本原则:简洁、沟通、反馈和适应。这些原则构成了敏捷软件开发的基础,帮助团队在面对变化和不确定性时,能够迅速做出调整。 敏捷软件开发的价值观 敏捷软件开发宣言提出了12个价值观,包括:个体和互动、工作和流程、产品和市场、可 ......
学习笔记5(第十一章)
一、知识点归纳 (一)知识点整理 第十一章 EXT2 文件系统 EXT2是一个完全与LINUX兼容的文件系统,这一章在简要EXT2-EXT4的当前状况之后,又用编程示例各种数据结构与如何进行相关的实现还展示了如何通过虚拟磁盘mount-root来构建基本文件系统,将文件系统的实现分为了三个级别并分别 ......
20211325 2023-2024-1 《信息安全系统设计与实现(上)》第五周学习笔记
20211325 2023-2024-1 《信息安全系统设计与实现(上)》第五周学习笔记 一、任务要求 自学教材第11章,提交学习笔记(10分),评分标准如下: 1.知识点归纳以及自己最有收获的内容,选择至少2个知识点利用chatgpt等工具进行苏格拉底挑战,并提交过程截图,提示过程参考下面内容 ( ......
高精度算法
1.高精度加法 这个比较简单一些,主要是考虑满10进位的问题,直接写代码就可以。(若数字很大的话,不太好运算,所以将数字转化成字符串的形式输入) #include <iostream> using namespace std; const int N = 100010; int A[N], B[N] ......
【科研00】【论文阅读】【略读笔记】TransUnet
目录0. 引言1. 链接 Link2. 阅读 Read2.1. 结构 Structure2.2. 编码 Encoder2.2.1. 卷积 CNN2.2.2. 变换 Transformer2.3. 解码 Decoder3. 优势 Advantage4. 想法 Think 0. 引言 想尝试TransU ......