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

北海哪里做网站百度竞价排名公司

北海哪里做网站,百度竞价排名公司,韩国疫情最新消息,如何在网站做推广一.题目要求 给你链表的头结点 head ,请将其按 升序 排列并返回 排序后的链表 。 二.题目难度 中等 三.输入样例 示例 1: 输入:head [4,2,1,3] 输出:[1,2,3,4] 示例 2: 输入:head [-1,5,3,4,0] 输…

一.题目要求

给你链表的头结点 head ,请将其按 升序 排列并返回 排序后的链表 。

二.题目难度

中等

三.输入样例

示例 1:
在这里插入图片描述
输入:head = [4,2,1,3]
输出:[1,2,3,4]

示例 2:
在这里插入图片描述
输入:head = [-1,5,3,4,0]
输出:[-1,0,3,4,5]

示例 3:
输入:head = []
输出:[]

四.解题思路

解法1:用map按值大小存结点
解法2:归并排序(GPT)

五.代码实现

解1

/*** Definition for singly-linked list.* struct ListNode {*     int val;*     ListNode *next;*     ListNode() : val(0), next(nullptr) {}*     ListNode(int x) : val(x), next(nullptr) {}*     ListNode(int x, ListNode *next) : val(x), next(next) {}* };*/
class Solution {
public:ListNode* sortList(ListNode* head) {ListNode* dummy = new ListNode(0);map<int,vector<ListNode*>> nodeMap;while(head){nodeMap[head->val].push_back(head);head = head->next;}ListNode* p = dummy;for(auto node : nodeMap){for(vector<ListNode*>::iterator it = node.second.begin(); it != node.second.end(); it++){(*it)->next = nullptr;p->next = *it;p = p->next;}}return dummy->next;}
};

解2

class Solution {
public:ListNode* sortList(ListNode* head) {if (!head || !head->next) return head;ListNode* mid = getMid(head);ListNode* left = sortList(head);ListNode* right = sortList(mid);return merge(left, right);}private:ListNode* getMid(ListNode* head) {ListNode* midPrev = nullptr;while (head && head->next) {midPrev = (midPrev == nullptr) ? head : midPrev->next;head = head->next->next;}ListNode* mid = midPrev->next;midPrev->next = nullptr; // 断开链表return mid;}ListNode* merge(ListNode* list1, ListNode* list2) {ListNode dummy(0);ListNode* ptr = &dummy;while (list1 && list2) {if (list1->val < list2->val) {ptr->next = list1;list1 = list1->next;} else {ptr->next = list2;list2 = list2->next;}ptr = ptr->next;}ptr->next = (list1) ? list1 : list2;return dummy.next;}
};

六.题目总结

归并排序在链表排序中非常有效,因为它可以利用链表的节点指针操作,无需像数组那样进行大量的元素交换,其时间复杂度是 O(NlogN),但通常比基于 std::map 的方法更快,因为它具有更好的常数因子和较低的内存使用。

递归分析:

在这里插入代码片
http://www.rdtb.cn/news/2271.html

相关文章:

  • 淘宝首页网站怎么做网络运营培训哪里有学校
  • server2008做DNS与网站软文广告案例
  • 门户网站推广方式sem
  • wordpress-5.6.20下载关键词排名优化公司
  • 上海仓储公司重庆seo博客
  • web网站开发技术培训课程
  • 延安网站制作重庆百度竞价开户
  • 做网站开发电脑配置营销策略有哪些4种
  • 长春网站建设电话牡丹江seo
  • 网站是哪个建站公司做的seo网站内部优化
  • 开源企业网站百度手机管家
  • 建站工具论坛百度本地推广
  • 上海知名的网站建设公优化精灵
  • 莱芜网络公司网站宁波seo外包服务平台
  • 网站如何做电脑销售电商平台运营
  • 做网站的一般尺寸优化网址
  • seo关键词优化软件排名赣州seo优化
  • 来宾城乡建设局网站做网站设计的公司
  • 郑州网站建设 郑州网站制作网络营销方法有哪些?
  • 网站推广排名有什么技巧优化排名
  • 长子营网站建设新公司如何做推广
  • 17年哪个网站做h5最好我想学做互联网怎么入手
  • 做app和做网站那个难深圳seo排名
  • 洛阳市网站建设免费做网站推广的软件
  • 网站建设的利益网络营销推广专家
  • 建设银行人才招聘网站seo算法培训
  • 一个服务器可以做几个网站北京网站
  • 描述网站开发的过程写文的免费软件
  • 网站建设合同交印花税国内seo公司排名
  • 石家庄网站建设专家市场营销产品推广策划方案