常见的I/O模型有阻塞I/O模型非阻塞I/O模型信号驱动I/O模型异步I/O模型I/O多路复用模型阻塞I/O模型每次对一个文件描述符执行I/O操作,每次I/O系统调用都会阻塞直到完成数据传输。如下图所示,当我们执行read系统调用时,应用程序会从用户态陷入内核态,内核会检查文件描述符是否可读;当文件描述符中存在数据时,操作系统内核会将准备好的数据拷贝给应用程序并将控制权交回。非阻塞I/O如果...
题目给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。示例:输入: [-2,1,-3,4,-1,2,1,-5,4], 输出: 6 解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。进阶:如果你已经实现复杂度为 O(n) 的解法,尝试使用更为精妙的分治法求解。解答动态规划0 < i < len(nums),假设f(i)是...
题目给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?请你找出所有满足条件且不重复的三元组。注意:答案中不可以包含重复的三元组。示例:给定数组 nums = [-1, 0, 1, 2, -1, -4], 满足要求的三元组集合为: [ [-1, 0, 1], [-1, -1, 2] ]解法吴彦祖的解法非常清...
题目给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。上面是由数组 [0,1,0,2,1,0,1,3,2,1,2,1] 表示的高度图,在这种情况下,可以接 6 个单位的雨水(蓝色部分表示雨水)。 感谢 Marcos 贡献此图。示例:输入: [0,1,0,2,1,0,1,3,2,1,2,1] 输出: 6解法动态编程思路:遍历每一列i,每一列可以接...
题目给定一个二叉树,返回它的中序 遍历。示例:输入: [1,null,2,3] 1 \ 2 / 3 输出: [1,3,2]进阶: 递归算法很简单,你可以通过迭代算法完成吗?解法思路:使用栈来解决,优点是运行速度快,缺点是比较难记忆,我在纸上画图,才捋清楚逻辑。从根节点开始,一直遍历左子树,遍历过程中,将遍历到的节点入栈,直到左子树为空,这时候就可以将栈...