拓扑排序
本文介绍了拓扑排序的定义、应用以及常用算法,并通过LeetCode相关题目进行讲解。
本文介绍了拓扑排序的定义、应用以及常用算法,并通过LeetCode相关题目进行讲解。
一个只看名字就能让人感到诧异的题目。一个数再丑能有我做这道题时出的丑还丑吗?
在算法设计中,我们常常遇到这样的困境:一个问题看似需要 O(n log n) 的排序操作,但题目却要求 O(n) 的时间复杂度。LeetCode 164.最大间距正是这样一个经典问题。本文将深入剖析如何运用桶排序思想和鸽巢原理在线性时间内解决这个难题。
一、下载JDK JDK的下载可以通过HomeBrew安装,也可以像在Windows上那样下载官网的安装包来安转 1.HomeBrew安装 打开Terminal,搜索可用的OpenJDK版本: brew search openjdk 安装最新版或特定版本 brew install openjdk@21 重要配置:Homebrew 安装后需要建立软链接,以...
一、背景 双指针技术是一种常用的算法设计技巧,广泛应用于数组、链表和字符串等数据结构中。它通过使用两个指针同时遍历数据结构,从而实现高效的解决方案。双指针技术通常分为两种类型:快慢指针和左右指针。 二、双指针的类型 快慢指针:这种方法使用两个指针,一个指针(快指针)以较快的速度移动,另一个指针(慢指针)以较慢的速度移动。常用于检测链表中的环、寻找链表的中间节点等问题。 左右指...
一、背景 Morris遍历算法是一种用于二叉树中序遍历的高效算法。该算法通过在树中临时建立线索,实现了在不使用额外空间的情况下进行中序遍历。Morris遍历由Joseph M. Morris于1979年提出,具有线性时间复杂度和常数空间复杂度。 二、算法设计 2.1问题定义 Morris遍历算法要解决什么问题? 在一个二叉树中,实现中序遍历而不使用额外的空间(如栈或递归)。 ...
第五次上机作业:课本342页第13题 一、实验内容 操作实验:熊猫烧香病毒分析。实验内容如下。 1)基于虚拟机软件及其快照功能,搭建一个恶意代码分析实验环境。 2)分析熊猫烧香病毒的程序结构和人侵过程。 完成实验报告。 二、实验环境 Windows XP 三、实验原理 四、实验步骤 1.搭建虚拟机环境 搭建虚拟机环境并将熊猫烧香文件压缩包复制到XP中,解压压缩包,并将...
第四次上机作业:课本304页第25题 一、实验内容 综合实验:从本书下载链接中下载Crackme程序,综合运用OllyDbg、IDA和 UltraEdit等工具进行注册登录功能的破解。完成实验报告。 二、实验环境 操作系统:Windows 11 破解工具:ollydbg 1.10 被破解程序:Brad Soblesky.1.exe 三、实验原理 破解的实验原理,就...
第三次上机作业:课本239页第16题 一、实验内容 综合实验:使用渗透性测试工具Metasploit进行漏洞测试。实验内容如下。 1)安装并配置Kali(https://www.kali.org)。 2)从Kali操作系统的终端初始化和启动Metasploit工具。 3)使用Metasploit挖掘MS08-067等漏洞。 完成实验报告。 二、实验环境 考虑到MS08-067漏洞需要...
第二次上机作业:课本239页第15题 一、实验内容 综合实验:使用AmericanFuzzy Lop(http://Icamtuf.coredump.cx/afl/)工具挖掘 C/C++程序漏洞。完成实验报告。 二、实验环境 操作系统:Linux 分析工具版本:afl-2.52b 三、实验原理 1.模糊测试 模糊测试是一种自动化的软件测试技术,它的核心思想是向目标程...