摘要: 算法思想:数组全部逆置,前n-p个元素和后p个元素全部逆置 代码: 阅读全文
posted @ 2019-10-20 15:51 bestAndBest 阅读(179) 评论(0) 推荐(0)
摘要: 思想:分别求A,B的中位数,若a=吧,则a或b为所求中位数,否则,舍弃a,b中最小者所在序列之较小一半,同时舍弃较大者所在序列较大一半,要求两次舍弃元素个数相同,重复上述过程,直到两个序列中只含一个元素为止,则较小者为所求中位数。 代码: 阅读全文
posted @ 2019-10-20 15:34 bestAndBest 阅读(266) 评论(0) 推荐(0)
摘要: 思想:假设一个链表比另一个链表长k个节点,我们先在长链表上遍历k个节点,之后同步遍历两个链表 1,遍历两个链表求出他们的长度 2,比较长度,找到较长链表 3,先遍历长链表的k个节点 4,同步遍历两个链表,直到找到相同节点或链表结束 代码: 阅读全文
posted @ 2019-10-20 15:17 bestAndBest 阅读(492) 评论(0) 推荐(0)
摘要: 算法思想:计数排序,建立一个辅助数组,遍历数组a,有一个数就把辅助数组相应位置元素+1,最后遍历一遍数组,找到出现最多的主元素 代码: 阅读全文
posted @ 2019-10-20 15:03 bestAndBest 阅读(222) 评论(0) 推荐(0)
摘要: 思想:基于先序遍历,用一个静态变量保存WPL把每个节点的深度作为参数传递 若为叶子结点,WPL=该节点深度*权值,若非叶子节点则递归调用 代码: 阅读全文
posted @ 2019-10-20 14:55 bestAndBest 阅读(1688) 评论(0) 推荐(0)
摘要: 思想:以空间换时间,因为|data|<=n,故辅助数组长度为n+1,各元素初值为0,依次扫描链表中各节点,同时检查q[|data|]的值如果为0,则保留该节点,幷使数值为1,否则,删除该节点。 代码: 时间O(1),空间O(n) 阅读全文
posted @ 2019-10-20 14:42 bestAndBest 阅读(436) 评论(0) 推荐(0)
摘要: 基本思想:仿照快速排序思想,基于枢轴将n个整数划分处理。 若i=n/2,则分组完成,算法结束 若i<n/2,则枢轴前元素均属于a1,继续对i以后的元素进行划分 若i>n/2,则枢轴之后的元素均属于a2,继续对i以前的元素进行划分 阅读全文
posted @ 2019-10-20 14:27 bestAndBest 阅读(539) 评论(0) 推荐(0)
摘要: 思想:表达式树中序遍历加上必要括号即为中缀表达式。表达式最外层(对应根节点)即操作数(即为叶节点)不需要添加括号 代码实现: 阅读全文
posted @ 2019-10-19 20:37 bestAndBest 阅读(835) 评论(0) 推荐(0)
摘要: 一,算法思想 从a[0]开始遍历a,若0<a[i]<=n,则另B[A[i]-1]=1,否则不做操作,对a遍历完了后再去遍历B,若能找到第一个满足B[i]=0的下标i,返回i+1即为结果 代码实现: 时间复杂度o(n),空间复杂度o(n) 阅读全文
posted @ 2019-10-19 20:24 bestAndBest 阅读(890) 评论(0) 推荐(0)
摘要: 算法基本思想:分三步完成: 第一步:采用两个指针交替前行,找到单链表中间节点 第二步:将单链表后半段节点原地逆置 第三步:从单链表前后两段各取一个节点,按要求重排 代码实现: 算法复杂度为O(N) 阅读全文
posted @ 2019-10-19 20:14 bestAndBest 阅读(773) 评论(0) 推荐(0)