摘要:
题目:输入一个整型数组,数组里有正数也有负数,数组中一个或连续多个整数组成一个子数组,求所有子数组的和的最大值。要求时间复杂度为O(n)思路:1、数组累加从头到尾逐个累加数组中的每个数字,当累加之和小于0时,从下一个元素开始累加,并通过一个变量保存最大和。2、动态规划思路与1一样,假设f(i)为以第... 阅读全文
摘要:
题目:八皇后问题:在8 X 8的国际象棋上摆放八个皇后,使其不能相互攻击,即任意两个皇后不得处于同一行,同一列或者同意对角线上,求出所有符合条件的摆法。思路:1、回溯法数据结构:由于8个皇后不能处在同一行,那么肯定每个皇后占据一行,这样可以定义一个数组A[8],数组中第i个数字,即A[i]表示位于第... 阅读全文
摘要:
题目:输入一个字符串,输出该字符串的字符的所有组合,比如输入字符串:abc,输出a、b、c、ab、ac、bc、abc。思路:回溯法建立一个数组记录字符串中的字符出现与否,如字符串abc,int A[3],A={1,0,1},就代表字符ac。代码:#include #include using nam... 阅读全文
摘要:
题目:输入n个整数,找出其中最小的K个数。例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4,。思路:1、排序把输入的n个整数排序,然后取前k个数;时间复杂度:O(nlogn)2、Partition通过partition找到第k大的数,它的左边就是前k小的数;时间复杂... 阅读全文
摘要:
TCP/IP协议族分为四层,互联网中不同的主机是通过IP层使用不同的IP地址来寻址的,也就是说,在IP层及其上层使用的是IP地址,它是一个逻辑地址(Logic Address)。但IP层的数据报传输到数据链路层后,通过数据链路层的网络接口卡,才能把IP数据报传输到目的主机或距目的主机较近的路由器... 阅读全文
摘要:
主要内容:1、ping的原理以及工作过程2、ICMP协议3、ICMP的应用:ping,traceroute1、ping的原理以及工作过程ping的原理 ping程序是用来探测主机到主机之间是否可通信,如果不能ping到某台主机,表明不能和这台主机建立连接。 ping使用的是ICMP协议,它发送i... 阅读全文
摘要:
题目:数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。思路:1、方法1:先排序,然后找中位数;时间复杂度O(nlogn)2、方法2:基于Partition函数... 阅读全文
摘要:
题目:输入一个字符串,打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。思路:把一个字符串看成两部分组成:第一部分为第一个字符,第二部分为后面的所有字符。求整个字符串的排列,可以看出两步:首先求所有可... 阅读全文
摘要:
题目:输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。二叉树的定义如下:struct TreeNode{ int val; TreeNode* left; TreeNode* right;};思路:在二叉树中,每个结... 阅读全文
摘要:
题目:请实现函数ComplexListNode* Clone(ComplexListNode* pHead),复制一个复杂链表。在复杂链表中,每个结点除了有一个pNext指针指向下一个结点之外,还有一个pSibling指向链表中的任意结点或者NULL。结点的定义如下:struct ComplexLi... 阅读全文