摘要: 给定一个乱序的链表,要求将链表进行排序后然后返回头结点,要求时间复杂度为 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) 编辑
摘要: 给定一个非空字符串 s 和一个包含非空单词的列表 wordDict,判定 s 是否可以被空格拆分为一个或多个在字典中出现的单词。 说明: 拆分时可以重复使用字典中的单词。 你可以假设字典中没有重复的单词。 输入: s = “applepenapple”, wordDict = [“apple”, “ 阅读全文
posted @ 2020-10-26 14:28 lippon 阅读(143) 评论(0) 推荐(0) 编辑
摘要: 文章目录 死锁原理死锁预防互斥占有且等待不可抢占循环等待 死锁避免死锁检测哲学家就餐问题Linux内核并发机制原子操作自旋锁信号量屏障 死锁原理 可以把死锁定义为一组相互竞争系统资源或进行通信的进程间的永久阻塞。 死锁由四个必要条件: 互斥占有且等待不可抢占循环等待 死锁预防 本质是试图设计一种系统 阅读全文
posted @ 2020-10-26 14:15 lippon 阅读(127) 评论(0) 推荐(0) 编辑
摘要: 文章目录 并发的原理进程间的资源竞争进程间通过共享合作进程间通过通信合作互斥的要求 互斥:硬件的支持中断禁用专用机器指令信号量互斥生产者消费者问题 管程消息传递 并发的原理 在单处理多道程序设计系统中,进程交替执行,表现出一种同时执行的外部特征。在多处理器系统中,不仅可以交替执行进程,而且可以重叠执 阅读全文
posted @ 2020-10-26 10:35 lippon 阅读(177) 评论(0) 推荐(0) 编辑
摘要: 线程和进程 线程是资源分配的基本单位、线程是调度的基本单位 进程的概念包括两个特点: 资源所有权:一个进程包括一个存放进程映像的虚拟地址空间,进程映像是程序、数据、栈和进程控制块中定义的属性的集合。一个进程拥有对资源的控制权和所有权,操作系统保护进程之间的资源不起冲突。调度/执行:一个进程具有一个执 阅读全文
posted @ 2020-10-26 09:22 lippon 阅读(122) 评论(0) 推荐(0) 编辑