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

网站建设报价单模板百度霸屏推广多少钱一个月

网站建设报价单模板,百度霸屏推广多少钱一个月,最早做美食团购的网站,湖南关键词优化推荐第一题:160. 相交链表 - 力扣(LeetCode) 方法:假设公共部分长度为z,A的长度为az,B的长度为bz.当pa移动到了尾部,就让它为headB;当pb移动到了尾部,就让它是headA&#xff…

第一题:160. 相交链表 - 力扣(LeetCode)

方法:假设公共部分长度为z,A的长度为a+z,B的长度为b+z.当pa移动到了尾部,就让它为headB;当pb移动到了尾部,就让它是headA,然后继续往后移动。这样只要链表相交就一定会相遇,因为两个指针移动的长度都是a+b+z.

举个例子,A先跑200m,再跑600m,再跑400m。B先跑400m,再跑600m,再跑200m。只要AB二人速度一样,总会相遇。

先看一个错误示范:

/*** Definition for singly-linked list.* struct ListNode {*     int val;*     ListNode *next;*     ListNode(int x) : val(x), next(NULL) {}* };*/
class Solution
{
public:ListNode* getIntersectionNode(ListNode* headA, ListNode* headB){if (headA == nullptr || headB == nullptr){return nullptr;}ListNode* pa = headA;ListNode* pb = headB;while (pa != pb){if (pa == nullptr) pa = headB;if (pb == nullptr) pb = headA;pa = pa->next;pb = pb->next;}return pa;}
};

错因:先赋值再移动。以pa为例子。pa为nullptr时,将headB赋值给它。但接着又执行pa=pa->next.如果交点是某个链表的头节点,那就有可能错过。

正确做法应该是先判断究竟是该移动还是该赋值:

/*** Definition for singly-linked list.* struct ListNode {*     int val;*     ListNode *next;*     ListNode(int x) : val(x), next(NULL) {}* };*/
class Solution
{
public:ListNode* getIntersectionNode(ListNode* headA, ListNode* headB){if (headA == nullptr || headB == nullptr){return nullptr;}ListNode* pa = headA;ListNode* pb = headB;while (pa != pb){pa = (pa == nullptr ? headB : pa->next);pb = (pb == nullptr ? headA : pb->next);}return pa;}
};

第二题:反转链表206. 反转链表 - 力扣(LeetCode)

法一:双指针迭代

class Solution
{
public:ListNode* reverseList(ListNode* head){if (head == nullptr || head->next == nullptr) return head;ListNode* prev = nullptr;ListNode* curr = head;while (curr){ListNode* temp = curr->next;curr->next = prev;prev = curr;curr = temp;}return prev;}
};

法二:双指针递归?不知道这么叫是否准确,但是和法一差不多。一对一对往后推而已。

class Solution
{
public:ListNode* r(ListNode* prev, ListNode* curr){if (curr == nullptr) return prev;ListNode* temp = curr->next;curr->next = prev;return r(curr, temp);}ListNode* reverseList(ListNode* head){return r(nullptr,head);}
};

法三:递归

class Solution
{
public:ListNode* reverseList(ListNode* head){if (head == nullptr || head->next == nullptr) return head;ListNode* curr = reverseList(head->next);//cur为最后一个节点//此时head为倒数第二个节点head->next->next = head;head->next = nullptr;//避免循环//开始往前归return curr;}
};

第三题:234. 回文链表 - 力扣(LeetCode)

法一:最直接的方法,用一个数组存储链表节点的值,用双指针判断是否回文。

class Solution
{
public:bool check(vector<int>& vec){int n = vec.size();int left = 0, right = n - 1;while (left <= right){if (vec[left] != vec[right]) return false;left++, right--;}return true;}bool isPalindrome(ListNode* head){ListNode* curr = head;vector<int>vec;while (curr){vec.push_back(curr->val);curr = curr->next;}return check(vec);}
};

法二:找中点,反转后半部分。用快慢指针找中点。

长度为偶数:

设原链表为:1-> 2 -> 2 -> 1

处理后:1 -> 2 -> 2 <- 1

长度为奇数:

设原链表为:1 -> 3 -> 5 -> 3 -> 1

处理后:1 -> 3 -> 5 <- 3 <- 1

所以while循环的条件是head2不为nullptr

class Solution
{
public:ListNode* find_middle(ListNode* head){ListNode* slow = head, * fast = head;while (fast && fast->next){slow = slow->next;fast = fast->next->next;}return slow;}ListNode* reverseList(ListNode* head){if (head == nullptr || head->next == nullptr) return head;ListNode* prev = nullptr, * curr = head;while (curr) {ListNode* temp = curr->next;curr->next = prev;prev = curr;curr = temp;}return prev;}bool isPalindrome(ListNode* head){ListNode* mid = find_middle(head);ListNode* head2 = reverseList(mid);while (head2){if (head->val != head2->val) return false;head = head->next;head2 = head2->next;}return true;}
};

http://www.dtcms.com/wzjs/37735.html

相关文章:

  • 电子商务网站规划的原则广州建网站的公司
  • zh cn wordpress天津seo网站管理
  • 福州网站设计定制公司百度写一篇文章多少钱
  • 扬州市建设工程造价管理站网站广告软文是什么意思
  • 网站名称大全安卓排名优化
  • 网站建设 APP开发销售怎么做站长之家下载
  • 崂山区建设管理局网站怎么了黑2019年 2022疫情爆发
  • 网站默认中文字体上海牛巨微seo
  • 顶尖网站建设北京seo外包公司要靠谱的
  • 天津制作网站首页宣传推广计划怎么写
  • 市政府网站建设会议成都seo专家
  • 邯郸做网站外包关键词推广seo怎么优化
  • 浙江省建设协会网站韩国搜索引擎排名
  • 马来西亚做公路投标网站网站模板下载
  • 中国建信网官方网站优化关键词排名seo
  • 网站咨询窗口怎么做找网络公司做推广费用
  • 科汛kesioncms网站系统谷歌搜图
  • 为什么我的网站百度不收录网站推广在线
  • 成都响应式网站开发百度推广效果怎样
  • wordpress在哪里改首页关键词标题seo公司软件
  • 平面设计软件哪个好用镇江关键字优化品牌
  • 中小型门户网站360网站安全检测
  • 网站备案需要什么资料优化推广联盟
  • 搬家网站建设思路移动优化课主讲:夫唯老师
  • 有什么网站做任务给钱的营销培训视频课程免费
  • 中国政府网站建设与应用小程序开发平台官网
  • 做网站要公安备案吗企业如何做网络推广
  • 做外贸网站平台有哪些武汉百度推广多少钱
  • 网站制作协议营销软文范例大全300
  • 酒类网站建设销售推广方案