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

网站建设项目流程快速开发网站的应用程序

网站建设项目流程,快速开发网站的应用程序,游戏开发者之家,企业网站自己可以做吗一.题目要求 给你链表的头结点 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 ( n l o g n ) O(nlogn) O(nlogn),但通常比基于 std::map 的方法更快,因为它具有更好的常数因子和较低的内存使用。

递归分析:

在这里插入代码片
http://www.dtcms.com/wzjs/358557.html

相关文章:

  • 做盗版网站引流公众号怎么开通
  • 用模板做企业网站东莞seo网络公司
  • 贵阳奇点未来网站建设站长工具a级
  • 建网站专用网站怎么推广软件让别人下载
  • 互联网之光博览会预约百度seo快速排名
  • 南昌中企动力做的网站怎么样湖北百度推广电话
  • 本地主机做网站服务器网络营销公司经营范围
  • 怒江州住房和城乡建设局网站一般开车用什么导航最好
  • 响应式网页设计优缺点热狗网站排名优化外包
  • 成都天府新区网站建设郑州seo价格
  • 案例学习网站建设方案摸摸学校友点企业网站管理系统
  • 网络推广外包流程网站seo优化培训
  • 南京网站建设要多少钱大众网疫情最新消息
  • 绥化市网站建设收录网站有哪些
  • 怎么样制作网站朋友圈广告推广文字
  • 哈尔滨建站模板系统个人网站创建平台
  • 天津做推广的公司seo系统培训哪家好
  • 网站建设 网站软文推广目前推广软件
  • 上海广告网站建设上海专业seo公司
  • 做产品设计之前怎么查资料国外网站竞价推广账户竞价托管
  • 门户网站首页百度排名
  • wordpress 仿糗百小红书关键词排名优化
  • 做模拟人生类的游戏下载网站百度网站关键词排名查询
  • 忽悠别人做商城网站北京百度推广优化
  • jsp网站开发书籍谷歌推广平台
  • wordpress 绕过后台成都网站优化平台
  • 西班牙外贸网站网站推广互联网推广
  • 小公司怎么做网站全媒体广告代理加盟靠谱吗
  • 如何做网站描述济南网站运营公司
  • 建设部人事司网站百度知道下载