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

网络营销的网站设计网站推荐html

网络营销的网站,设计网站推荐html,wordpress 新增页面,深圳知名网站设计公司排名文章目录 一、题目二、C# 题解 一、题目 编写一个函数#xff0c;检查输入的链表是否是回文的。 点击此处跳转题目。 示例 1#xff1a; 输入#xff1a; 1-2 输出#xff1a; false 示例 2#xff1a; 输入#xff1a; 1-2-2-1 输出#xff1a; true … 文章目录 一、题目二、C# 题解 一、题目 编写一个函数检查输入的链表是否是回文的。 点击此处跳转题目。 示例 1 输入 1-2 输出 false 示例 2 输入 1-2-2-1 输出 true 进阶 你能否用 O(n) 时间复杂度和 O(1) 空间复杂度解决此题 二、C# 题解 使用 O ( n ) O(n) O(n) 空间很容易写出来只需要开辟一个数组或者反向链表即可。这里为了实现进阶要求在原链表上修改。首先将链表的前半部分翻转然后比较前后两个链表是否相同最后恢复原链表即可具体实现细节见代码注释 /*** Definition for singly-linked list.* public class ListNode {* public int val;* public ListNode next;* public ListNode(int x) { val x; }* }*/ public class Solution {public bool IsPalindrome(ListNode head) {int n 0, i;ListNode p head, q;bool result;// 统计链表长度while (p ! null) {p p.next;n;}if (n 1) return true; // 长度 1一定是回文串i n / 2; // 长度的一半向下取整p head;while (--i 0) p p.next; // 定位到链表中间q p.next;p.next null; // 断开链表Reverse(head); // 翻转前半部分// 判断链表前后两部分是否相同if (n % 2 0) result Same(p, q);else result Same(p, q.next); // 奇数长度的链表需要跳过最中间的元素// 恢复链表原状Reverse(p);p.next q;return result;}// 翻转链表public ListNode Reverse(ListNode head) {ListNode p null, q head, r;while (q ! null) {r q.next;q.next p;p q;q r;}return p;}// 比较两个链表是否相同public bool Same(ListNode h1, ListNode h2) {while (h1 ! null h2 ! null) {if (h1.val ! h2.val) return false;h1 h1.next;h2 h2.next;}return h1 null h2 null;} }时间复杂度 O ( n ) O(n) O(n)。空间复杂度 O ( 1 ) O(1) O(1)。 看了一下官方解法发现还可以进行优化。使用快慢指针定位到中间节点代码会更加高级和优雅hh。但是效率和上面统计长度然后遍历一半进行定位的方式差不多因为都是遍历了一个半链表快指针遍历整个链表慢指针遍历半个链表但是快慢指针这种方法它显得高级呀哈哈 /*** Definition for singly-linked list.* public class ListNode {* public int val;* public ListNode next;* public ListNode(int x) { val x; }* }*/ public class Solution {public bool IsPalindrome(ListNode head) {if (head null || head.next null) return true;ListNode p head, q p.next; // p慢指针q快指针bool result;while (q ! null q.next ! null) {q q.next.next; // q 前进两格if (q ! null) p p.next; // q 不为空p 才前进}ListNode r p.next; // 定位到后半段链表的首部p.next null; // 断开链表Reverse(head); // 翻转前半部分// 判断链表前后两部分是否相同if (q ! null) result Same(p, r);else result Same(p, r.next); // 奇数长度的链表需要跳过最中间的元素// 恢复链表原状Reverse(p);p.next r;return result;}// 翻转链表public ListNode Reverse(ListNode head) {ListNode p null, q head, r;while (q ! null) {r q.next;q.next p;p q;q r;}return p;}// 比较两个链表是否相同public bool Same(ListNode h1, ListNode h2) {while (h1 ! null h2 ! null) {if (h1.val ! h2.val) return false;h1 h1.next;h2 h2.next;}return h1 null h2 null;} }时间复杂度 O ( n ) O(n) O(n)。空间复杂度 O ( 1 ) O(1) O(1)。 修改过后发现快慢指针跑出来的速度不如直接统计链表长度来得快。果然高端的代码往往以最朴素的方法写出来~
http://www.dnsts.com.cn/news/156731.html

相关文章:

  • 做网站都需要准备什么班徽logo设计图片
  • 专做PPP项目网站wordpress轻语博客
  • 网站的管理与维护wordpress谷歌网站地图
  • 网站平台建设费用做搜狗网站优化快速排
  • 最新网站模板企业营销型网站类型
  • 响应式网站管理系统桐梓县工程建设交易网站
  • 简述站点推广有哪些方式上海排名优化推广工具
  • 南宁做网站找哪家公司怎么注册域名免费
  • 4.1进行网站建设与推广网站蓝色和红色搭配
  • 网站咋做推广展厅设计素材网站
  • 手机网站设计公司立找亿企邦创建网站代码
  • 做网站的服务器哪个系统好网站服务器的作用和功能有哪些
  • 国展网站建设做u盘的老外网站
  • 自己怎么做微网站科技园
  • 流媒体网站开发教程wordpress 分页数
  • 安溪网站制作劳务工程信息平台
  • ?]后台的网站可以备案吗北京企业名录大全
  • 网站备案幕布psd制作网站费用分类
  • 公司做网站需要准备什么东西衡阳百度推广公司
  • 易语言做网站后端无锡招聘网最新招聘
  • 开一家网络公司做网站前景如何网页图片加载慢解决方法
  • 网站开发服务费会计处理青海农业网站建设公司
  • 早晨设计 做网站设计吗企业信用信息公示查询
  • 给一个学校网站做宣传海报网站怎么做百度认证
  • 网站在建设中 英语公司网站建设注册
  • 微信公众号是在哪个网站做的最好的完全免费开源企业网站
  • 付费电影网站源码西安网站制作顶尖公
  • 一级a做爰小说免费网站高质量网站外链建设大揭秘
  • 网站轮播效果网站版权 备案icp
  • wordpress一键建站企业网络费用一年多少钱