当前位置: 首页 > news >正文

上行10m做网站服务dw做网站怎么设置页面音乐

上行10m做网站服务,dw做网站怎么设置页面音乐,物流公司名称大全,廊坊自动seo链表解题技巧 额外的数据结构#xff08;哈希表#xff09;#xff1b;快慢指针#xff1b;虚拟头节点#xff1b; 链表划分 将单向链表值划分为左边小、中间相等、右边大的形式。中间值为pivot划分值。 要求#xff1a;调整之后节点的相对次序不变#xff0c;时间复…链表解题技巧 额外的数据结构哈希表快慢指针虚拟头节点 链表划分 将单向链表值划分为左边小、中间相等、右边大的形式。中间值为pivot划分值。 要求调整之后节点的相对次序不变时间复杂度不高于O(N)空间复杂度不高于O(1)。 方法1数组 快排 整体思路就是遍历一遍链表把节点存入数组对数组快排然后再遍历数组生成将节点重新连接。 该方法时间复杂度为O(N*logN)空间复杂度为O(N)且会改变相对次序。 但最容易想到和实现。 ListNode* LinkedList::partitionWithPivotAndArray(ListNode *head, int pivot) {if (head nullptr || head-next nullptr) return head;// push into arrayListNode *cur head;std::vectorListNode* arr;while (cur ! nullptr) {arr.push_back(cur);cur cur-next;}// partitionint less -1;int more (int)arr.size();for (int i 0; i more; ) {if (arr[i]-val pivot) {swap(arr[less], arr[i]);} else if (arr[i]-val pivot) {swap(arr[--more], arr[i]);} else {i;}}// rejointint i 1;for (; i (int)arr.size(); i) {arr[i - 1]-next arr[i];}arr[i-1]-next nullptr;return arr[0]; }void LinkedList::swap(ListNode *a, ListNode *b) {ListNode tmp *a;*a *b;*b tmp; }方法2多个指针 主要是使用6个指针记录3个部分的头、尾位置。 在判定完一个节点属于3个部分的哪个部分后 如果是当前这部分的第一个节点将该部分头部head和tail的位置均赋值为该节点如果不是第一个节点将该部分尾部tail的next指向当前节点tail在移动到该节点 三部分连接 第1部分存在 第2部分存在1尾部连接2头部第2部分不存在1尾部连接3头部 不论第一部分存在与否 第2部分存在2尾部连接3头部 判断头节点 返回less、pivot和more中不为空且在前面的指针即less不为空返回less否则pivot不为空返回pivot否则才返回more。 ListNode* LinkedList::partitionWithPivot(ListNode *head, int pivot) {if (head nullptr || head-next nullptr) return head;ListNode *less_head, *less_tail, *pivot_head, *pivot_tail, *more_head, *more_tail;less_head less_tail pivot_head pivot_tail more_head more_tail nullptr;// partitionListNode *cur head;while (cur) {if (cur-val pivot) {if (less_head nullptr) {less_head less_tail cur;} else {less_tail-next cur;less_tail cur;}} else if (cur-val pivot) {if (pivot_head nullptr) {pivot_head pivot_tail cur;}else {pivot_tail-next cur;pivot_tail cur;}} else {if (more_head nullptr) {more_head more_tail cur;}else {more_tail-next cur;more_tail cur;}}cur cur-next;}// jointif (less_head ! nullptr) {less_tail-next pivot_head ! nullptr ? pivot_head : more_head;}if (pivot_head ! nullptr) {pivot_tail-next more_head;}// final headhead less_head ? less_head : (pivot_head ? pivot_head : more_head);return head; }Notes 注意处理小于部分、等于部分、大于部分有缺失的情况。
http://www.w-s-a.com/news/382554/

相关文章:

  • 计算机软件开发需要学什么沈阳网站关键字优化
  • 关于军队建设网站国内最好的wordpress主题
  • 小视频网站如何建设陪诊app开发
  • 英文网站首页优化国外手机网站源码
  • 网站建设公司如何找客户网站建设应该考虑哪些问题
  • 创新的江苏网站建设wordpress用户绑定手机
  • 自己做网赌网站网站设计者
  • 教育培训网站设计辽宁招标工程信息网
  • 韶关网站推广做网站要哪些人员
  • 建设银行网站链接开发公司与物业公司交接清单
  • 网站定位广告企业建网站有这个必要吗
  • 网站模板 商标黄冈建设工程信息网
  • 做鞋子的招聘网站有哪些微网站
  • 项目网站开发建网站 多少钱
  • wordpress做门户seo培训价格
  • 百度关键词优化软件如何wordpress站点地图优化
  • 使用cnnic证书的网站营销公司有哪些
  • 做电子杂志用什么网站如何将网站生成二维码
  • 三点水网站建设洛阳市建设厅网站
  • 哪家做网站便宜网络推广培训吧
  • 网站怎么做支付非凡软件站
  • 北京谁会做网站开发熊岳网站怎么做
  • 南阳哪有做网站公司定制网站本地企业
  • 平板上做网站的软件邀约网站怎么做请柬
  • 企业网站成品源码邯郸做网站流程
  • 建设网站需要什么技术两个网站放在同一个服务器 备案
  • 焦作做网站推广天津网络关键词排名
  • siteserver cms网站访问量挂机宝可以做网站吗
  • 普宁网站建设公司网络商城设计
  • wordpress主题 外贸网站wordpress安装后输入帐号登不进去