摘要: 思路: 使用两个数组,a[]存储所有arr中重复的元素,另一个数组b[]下标是arr中的元素值,数组元素是对应下标值出现的次数。时间复杂度是O(n) 需要注意的是,b[]需要申请静态数组,因为如果使用动态数组相邻两个元素值差别的话会发生溢出;a[]需要时动态数组,因为元素个数不确定同时所有元素都是有 阅读全文
posted @ 2020-04-07 17:59 PennyXia 阅读(588) 评论(0) 推荐(0) 编辑
摘要: 思路: 就是最大子列和呗,时间复杂度最佳那就是O(n),使用贪心算法。 以下是三种方法,时间复杂度递减 1 // preface.cpp : 基本概念 求最大子列和 2 #include "pch.h" 3 #include <iostream> 4 using namespace std; 5 6 阅读全文
posted @ 2020-04-07 17:22 PennyXia 阅读(514) 评论(0) 推荐(0) 编辑
摘要: 思路: 不用开辟第三方数组的做法 可以模拟,我还没想好怎么描述。。。。 1 //num1[]空间足够 2 void Merge(int *num1, int m, int*num2, int n) { 3 int i = m-1, j = n-1; 4 while (i>=0&&j>=0) { 5 阅读全文
posted @ 2020-04-07 17:03 PennyXia 阅读(201) 评论(0) 推荐(0) 编辑
摘要: 啥是循环链表: 循环链表是一种链式的存储结构,与单链表不同的是,循环链表的最后一个结点的指针是指向该循环链表的第一个结点或者头结点,从而构成一个环形的链。 循环链表的运算与单链表的运算基本一致,所不同的有以下几点: 在建立一个循环链表时,必须使其最后一个结点的指针指向表头结点,而不是像单链表那样置为 阅读全文
posted @ 2020-04-07 16:40 PennyXia 阅读(1824) 评论(0) 推荐(0) 编辑
摘要: 思路(证明有环): 定义快慢指针fast和slow,fast每次前进两步,slow每次前进一步; 当fast和slow在到达链尾之前相遇的话,就证明有环(类似于在操场上跑步跑的慢的被快的套圈但总会遇到); 思路(找环结点): fast和slow相遇之后,fast不动,slow回到最初的起点,然后一步 阅读全文
posted @ 2020-04-07 14:06 PennyXia 阅读(895) 评论(0) 推荐(0) 编辑
摘要: 分析: 其实就是p先跑然后标示出p和pre的恒定差,此后一直维持这种恒定差就能在p到最后的时候,pre能指向倒数第N个结点。 思路: 定义两个指针p、pre都指向头结点; p指针先跑,当p指针跑了N-1个节点后,pre指针再开始跑; 当p指针跑到最后时,pre所指指针就是倒数第N个节点。 1 #in 阅读全文
posted @ 2020-04-07 13:39 PennyXia 阅读(564) 评论(0) 推荐(0) 编辑
摘要: 分析: 两条单向链表相交的唯一可能是(b),以为链表结点只有一个指针域不可能指向两个不同的结点。 手画图还是丑的,我需要学画图软件了(╯﹏╰)b 思路: 遍历两个链表分别存入栈s1和s2; 只要两个栈不空就一起出栈,遇到第一个不同的元素就是相交的结点。 1 #include <iostream> 2 阅读全文
posted @ 2020-04-07 13:20 PennyXia 阅读(531) 评论(0) 推荐(0) 编辑
摘要: 1、工程中的“结点”可以认为是在已经连成整体的结构上所设置的特征点或标识点,它与结构原本是如何连接的,即连接的过程或细节并无直接关系。 2、“节点”是“结构各段之间相连的地方”,“节点”只是一个习惯称法,并不一定是真正的“点”,而是一个“地方”,是区域或者部位。 基于以上专业解释 在计算机网络中,网 阅读全文
posted @ 2020-04-07 10:08 PennyXia 阅读(2020) 评论(0) 推荐(0) 编辑