摘要: 题目: 实现获取下一个排列的函数,算法需要将给定数字序列重新排列成字典序中下一个更大的排列。 如果不存在下一个更大的排列,则将数字重新排列成最小的排列(即升序排列)。 必须原地修改,只允许使用额外常数空间。 以下是一些例子,输入位于左侧列,其相应输出位于右侧列。1,2,3 → 1,3,23,2,1  阅读全文
posted @ 2018-11-19 16:07 不想取名字所以就随便写了 阅读(130) 评论(0) 推荐(0) 编辑
摘要: 题目: 给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。 示例: 说明: 你的算法只能使用常数的额外空间。 你不能只是单纯的改变节点内部的值,而是需要实际 解析: 这种方法中p,q指向需要交换的两个节点, m永远指向被交换两个节点前的节点, 通过m把交换后的两个节点与已经交换完成的节点连接 阅读全文
posted @ 2018-11-15 16:51 不想取名字所以就随便写了 阅读(164) 评论(0) 推荐(0) 编辑
摘要: 题目: 给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。 示例: 阅读全文
posted @ 2018-11-15 14:43 不想取名字所以就随便写了 阅读(137) 评论(0) 推荐(0) 编辑
摘要: 题目:给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。 给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。 示例: 这种方法无论空间还是时间复杂度都比较高 解法二: 这里说明一下36行, 首先经过33行的计算, rsize表示每一个字符在当前区段应当出现的次数, 阅读全文
posted @ 2018-11-15 10:48 不想取名字所以就随便写了 阅读(199) 评论(0) 推荐(0) 编辑
摘要: 定义原始套接字的目的在于提供访问某个协议的接口, 通过原始套接字, 进程可以读写ICMPv4, IGMPv4和ICMPv6等分组, 进程也可以读写内核不处理其协议字段的IPv4数据报, 进程还可以使用IP_HDRINCL套接字选项自行构造IPv4首部。 创建一个原始套接字步骤如下: int sock 阅读全文
posted @ 2018-11-14 23:13 不想取名字所以就随便写了 阅读(197) 评论(0) 推荐(0) 编辑
摘要: 将字符串 "PAYPALISHIRING" 以Z字形排列成给定的行数: 之后从左往右,逐行读取字符:"PAHNAPLSIIGYIR" 实现一个将字符串进行指定行数变换的函数: 示例 1: 示例 2: 阅读全文
posted @ 2018-11-14 10:36 不想取名字所以就随便写了 阅读(177) 评论(0) 推荐(0) 编辑
摘要: 给定一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?找出所有满足条件且不重复的三元组。 注意:答案中不可以包含重复的三元组。 阅读全文
posted @ 2018-11-13 15:44 不想取名字所以就随便写了 阅读(157) 评论(0) 推荐(0) 编辑
摘要: 实现 atoi,将字符串转为整数。 该函数首先根据需要丢弃任意多的空格字符,直到找到第一个非空格字符为止。如果第一个非空字符是正号或负号,选取该符号,并将其与后面尽可能多的连续的数字组合起来,这部分字符即为整数的值。如果第一个非空字符是数字,则直接将其与之后连续的数字字符组合起来,形成整数。 字符串 阅读全文
posted @ 2018-11-13 08:48 不想取名字所以就随便写了 阅读(146) 评论(0) 推荐(0) 编辑
摘要: Unix下有5种可用的I/O模型: 阻塞式I/O 非阻塞式I/O I/O复用(select、poll、epoll) 信号驱动式I/O(SIGIO) 异步I/O (1) 阻塞式I/O模型 像scanf, cin这些就是最简单的阻塞式I/O, 在正确读入/接收到数据之前, 进程被阻塞, 无法继续向下运行 阅读全文
posted @ 2018-11-06 14:55 不想取名字所以就随便写了 阅读(146) 评论(0) 推荐(0) 编辑
摘要: (1) fork 浅析 linux 中, 一个进程可以通过fork()系统调用来创建一个与自己相同的子进程, 这个子进程是父进程的克隆, 他继承了父进程的整个地址空间, 包括进程上下文, 堆栈地址, 内存信息, 进程控制块等。值得注意的是, 调用fork一次, 他却返回两次, 一次是在父进程中返回子 阅读全文
posted @ 2018-11-05 13:00 不想取名字所以就随便写了 阅读(686) 评论(0) 推荐(0) 编辑