摘要: 设计一个算法来实现二叉树的序列化与反序列化。这里不限定你的序列 / 反序列化算法执行逻辑,你只需要保证一个二叉树可以被序列化为一个字符串并且将这个字符串反序列化为原始的树结构。 解题思路: 根据二叉树的遍历思想,只要将空节点的表示符号写入字符串,就能根据二叉树的某种遍历,构造出唯一的树。这里通过二叉 阅读全文
posted @ 2020-10-30 15:04 lippon 阅读(100) 评论(0) 推荐(0) 编辑
摘要: 文章目录 I/O设备I/O功能组织直接存储器访问 操作系统设计问题设计目标IO功能的逻辑结构 I/O缓冲单缓冲双缓冲循环缓冲缓冲的作用 磁盘调度磁盘性能参数磁盘调度策略先进先出优先级后进先出最短服务时间优先SCANC-SCANN-step-SCAN 磁盘高速缓存设计考虑 UNIX I/O I/O设备 阅读全文
posted @ 2020-10-30 10:25 lippon 阅读(280) 评论(0) 推荐(1) 编辑
摘要: 在未排序的数组中找到第 k 个最大的元素。 链接: leetcode. 解题思路:通过快速排序的思想方法,每次随机获取指定范围内一个树的排序位置,然后根据这个位置,再重新指定范围,直到这个位置索引满足K。 class Solution { public int findKthLargest(int[ 阅读全文
posted @ 2020-10-29 16:50 lippon 阅读(196) 评论(0) 推荐(0) 编辑
摘要: 多处理器调度 粒度 一种描述多处理器并把它们和其他结构放置在一个上下文环境中的一种比较好的方法是,考虑系统中进程之间的同步粒度,又或者说同步频率。不同粒度的划分依据是同步指令间隔。 进程调度 有多条基于优先级的队列,并且都送进相同的处理器池中,可以把系统看作多服务器排队结构。 线程调度 在多处理器线 阅读全文
posted @ 2020-10-29 10:22 lippon 阅读(114) 评论(0) 推荐(0) 编辑
摘要: 处理器调度类型 分为三个独立的功能:长程、中程和短程调度。它们的名字表明指向这些功能的相对时间比例。 创建新进程时,执行长程调度,它决定是否把进程添加进当前活跃的进程集合中。中程调度是交换功能的一部分,它决定是否把进程添加进那些至少部分存在内存并且可以被执行的进程集合中。短程调度真正决定下一次执行哪 阅读全文
posted @ 2020-10-29 10:03 lippon 阅读(92) 评论(0) 推荐(0) 编辑
摘要: 文章目录 内存管理的需求重定位保护共享逻辑组织物理组织 内存分区固定分区动态分区伙伴系统重定位 分页分段安全问题缓冲区溢出攻击 内存管理的需求 重定位 当进程在内存和磁盘中交换的时候,需要通过重定位将进程放到内存的不同区域。 处理器和操作系统通过某种方式吧代码中的内存访问转换成物理内存的地址,并反映 阅读全文
posted @ 2020-10-29 09:32 lippon 阅读(113) 评论(0) 推荐(0) 编辑
摘要: 实现一个 Trie (前缀树),包含 插入, 查询, 和 查询前缀这三个操作。 Trie trie = new Trie(); trie.insert(“apple”); trie.search(“apple”); // 返回 true trie.search(“app”); // 返回 false 阅读全文
posted @ 2020-10-28 21:04 lippon 阅读(147) 评论(0) 推荐(0) 编辑
摘要: 你这个学期必须选修 numCourse 门课程,记为 0 到 numCourse-1 。 在选修某些课程之前需要一些先修课程。 例如,想要学习课程 0 ,你需要先完成课程 1 ,我们用一个匹配来表示他们:[0,1] 给定课程总量以及它们的先决条件,请你判断是否可能完成所有课程的学习? 2, [[1, 阅读全文
posted @ 2020-10-27 21:29 lippon 阅读(1245) 评论(0) 推荐(0) 编辑
摘要: 给定一个乱序的链表,要求将链表进行排序后然后返回头结点,要求时间复杂度为 O(nlogn)。 leetcode 由于无法快速得到链表中某一节点得值,时间复杂度为 O(nlogn),所以,通过归并排序。归并的核心思想是将数据分为两段有序的数据,再进行合并。归并的程序设计上可以由递归和迭代两种方法,迭代 阅读全文
posted @ 2020-10-26 16:46 lippon 阅读(85) 评论(0) 推荐(0) 编辑
摘要: 普通链表的节点由节点值和指向下一个节点的指针组成。双向链表顾名思义,节点中多一个指针可以指向前一个节点。 优点:可以得到前节点,这样在只有当前节点的情况下,可以删除本节点。 构造思想:链表中存在一个头节点和一个尾节点,向头添加节点的时候,将被添加的节点下一个指针指向头节点的下一个节点,然后只需要把头 阅读全文
posted @ 2020-10-26 15:26 lippon 阅读(84) 评论(0) 推荐(0) 编辑