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

内蒙古建设工程社保中心网站seo查询百科

内蒙古建设工程社保中心网站,seo查询百科,怎么做网站推广电话,做商城网站的风险目录 1. 排序链表 ★★ 2. 最长连续序列 ★★ 3. 扰乱字符串 ★★★ 🌟 每日一练刷题专栏 🌟 Golang每日一练 专栏 Python每日一练 专栏 C/C每日一练 专栏 Java每日一练 专栏 1. 排序链表 给你链表的头结点 head ,请将其按 升序 …

目录

1. 排序链表  ★★

2. 最长连续序列  ★★

3. 扰乱字符串  ★★★

🌟 每日一练刷题专栏 🌟

Golang每日一练 专栏

Python每日一练 专栏

C/C++每日一练 专栏

Java每日一练 专栏


1. 排序链表

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

进阶:

  • 你可以在 O(nlogn) 时间复杂度和常数级空间复杂度下,对链表进行排序吗?

示例 1:

输入:head = [4,2,1,3]
输出:[1,2,3,4]

示例 2:

输入:head = [-1,5,3,4,0]
输出:[-1,0,3,4,5]

示例 3:

输入:head = []
输出:[]

提示:

  • 链表中节点的数目在范围 [0, 5 * 10^4] 内
  • -10^5 <= Node.val <= 10^5

代码:

class ListNode:def __init__(self, x):self.val = xself.next = Noneclass Solution:def sortList(self, head: ListNode) -> ListNode:if head == None:return Noneelse:return self.mergeSort(head)def mergeSort(self, head):if head.next == None:return headfast = headslow = headpre = Nonewhile fast != None and fast.next != None:pre = slowslow = slow.nextfast = fast.next.nextpre.next = Noneleft = self.mergeSort(head)right = self.mergeSort(slow)return self.merge(left, right)def merge(self, left, right):tempHead = ListNode(0)cur = tempHeadwhile left != None and right != None:if left.val <= right.val:cur.next = leftcur = cur.nextleft = left.nextelse:cur.next = rightcur = cur.nextright = right.nextif left != None:cur.next = leftif right != None:cur.next = rightreturn tempHead.nextclass LinkList:def __init__(self):self.head = Nonedef initList(self, data):if not data: return Noneself.head = ListNode(data[0])p = head = self.headfor i in data[1:]:node = ListNode(i)p.next = nodep = p.nextreturn headdef showList(self, head):if head:print(head.val, end = '->')self.showList(head.next)else:print('null')if __name__ == '__main__':s = Solution()l = LinkList()head = l.initList([4,2,1,3])l.showList(head)head = s.sortList(head)l.showList(head)head = l.initList([-1,5,3,4,0])l.showList(head)head = s.sortList(head)l.showList(head)

输出:

4->2->1->3->null
1->2->3->4->null
-1->5->3->4->0->null
-1->0->3->4->5->null


2. 最长连续序列

给定一个未排序的整数数组 nums ,找出数字连续的最长序列(不要求序列元素在原数组中连续)的长度。

请你设计并实现时间复杂度为 O(n) 的算法解决此问题。

示例 1:

输入:nums = [100,4,200,1,3,2]
输出:4
解释:最长数字连续序列是 [1, 2, 3, 4]。它的长度为 4。

示例 2:

输入:nums = [0,3,7,2,5,8,4,6,0,1]
输出:9

提示:

  • 0 <= nums.length <= 10^5
  • -10^9 <= nums[i] <= 10^9

代码:

class ListNode:def __init__(self, x):self.val = xself.next = Noneclass Solution:def longestConsecutive(self, nums: list) -> int:hash_dict = {}max_length = 0for num in nums:if num not in hash_dict:pre_length = hash_dict.get(num - 1, 0)next_length = hash_dict.get(num + 1, 0)cur_length = pre_length + 1 + next_lengthif cur_length > max_length:max_length = cur_lengthhash_dict[num] = cur_lengthhash_dict[num - pre_length] = cur_lengthhash_dict[num + next_length] = cur_lengthreturn max_lengthif __name__ == '__main__':s = Solution()nums = [100,4,200,1,3,2]print(s.longestConsecutive(nums))nums = [0,3,7,2,5,8,4,6,0,1]print(s.longestConsecutive(nums))

输出:

4
9


3. 扰乱字符串

使用下面描述的算法可以扰乱字符串 s 得到字符串 t :

  1. 如果字符串的长度为 1 ,算法停止
  2. 如果字符串的长度 > 1 ,执行下述步骤:
    • 在一个随机下标处将字符串分割成两个非空的子字符串。即,如果已知字符串 s ,则可以将其分成两个子字符串 x 和 y ,且满足 s = x + y 。
    • 随机 决定是要「交换两个子字符串」还是要「保持这两个子字符串的顺序不变」。即,在执行这一步骤之后,s 可能是 s = x + y 或者 s = y + x 。
    • 在 x 和 y 这两个子字符串上继续从步骤 1 开始递归执行此算法。

给你两个 长度相等 的字符串 s1 和 s2,判断 s2 是否是 s1 的扰乱字符串。如果是,返回 true ;否则,返回 false 。

示例 1:

输入:s1 = "great", s2 = "rgeat"
输出:true
解释:s1 上可能发生的一种情形是:
"great" --> "gr/eat" // 在一个随机下标处分割得到两个子字符串
"gr/eat" --> "gr/eat" // 随机决定:「保持这两个子字符串的顺序不变」
"gr/eat" --> "g/r / e/at" // 在子字符串上递归执行此算法。两个子字符串分别在随机下标处进行一轮分割
"g/r / e/at" --> "r/g / e/at" // 随机决定:第一组「交换两个子字符串」,第二组「保持这两个子字符串的顺序不变」
"r/g / e/at" --> "r/g / e/ a/t" // 继续递归执行此算法,将 "at" 分割得到 "a/t"
"r/g / e/ a/t" --> "r/g / e/ a/t" // 随机决定:「保持这两个子字符串的顺序不变」
算法终止,结果字符串和 s2 相同,都是 "rgeat"
这是一种能够扰乱 s1 得到 s2 的情形,可以认为 s2 是 s1 的扰乱字符串,返回 true

示例 2:

输入:s1 = "abcde", s2 = "caebd"
输出:false

示例 3:

输入:s1 = "a", s2 = "a"
输出:true

提示:

  • s1.length == s2.length
  • 1 <= s1.length <= 30
  • s1 和 s2 由小写英文字母组成

代码:

class Solution(object):def isScramble(self, s1, s2, memo={}):if len(s1) != len(s2) or sorted(s1) != sorted(s2):return Falseif len(s1) <= len(s2) <= 1:return s1 == s2if s1 == s2:return Trueif (s1, s2) in memo:return memo[s1, s2]n = len(s1)for i in range(1, n):a = self.isScramble(s1[:i], s2[:i], memo) and self.isScramble(s1[i:], s2[i:], memo)if not a:b = self.isScramble(s1[:i], s2[-i:], memo) and self.isScramble(s1[i:], s2[:-i], memo)if a or b:memo[s1, s2] = Truereturn Truememo[s1, s2] = Falsereturn False# %%
s = Solution()
print(s.isScramble(s1 = "great", s2 = "rgeat"))
print(s.isScramble(s1 = "abcde", s2 = "caebd"))
print(s.isScramble(s1 = "a", s2 = "a"))

输出:

True
False
True


🌟 每日一练刷题专栏 🌟

 持续,努力奋斗做强刷题搬运工!

👍 点赞,你的认可是我坚持的动力! 

🌟 收藏,你的青睐是我努力的方向! 

 评论,你的意见是我进步的财富!  

Golang每日一练 专栏

Python每日一练 专栏

C/C++每日一练 专栏

Java每日一练 专栏


文章转载自:
http://bookish.Lnnc.cn
http://cryohydrate.Lnnc.cn
http://litotes.Lnnc.cn
http://mediatress.Lnnc.cn
http://confusion.Lnnc.cn
http://downflow.Lnnc.cn
http://testate.Lnnc.cn
http://untrained.Lnnc.cn
http://mocha.Lnnc.cn
http://litigate.Lnnc.cn
http://threepenny.Lnnc.cn
http://permanency.Lnnc.cn
http://modificative.Lnnc.cn
http://setout.Lnnc.cn
http://wish.Lnnc.cn
http://rework.Lnnc.cn
http://lumber.Lnnc.cn
http://pseudo.Lnnc.cn
http://supraorbital.Lnnc.cn
http://rhinotracheitis.Lnnc.cn
http://escalatory.Lnnc.cn
http://diovular.Lnnc.cn
http://photolyze.Lnnc.cn
http://potential.Lnnc.cn
http://amerasian.Lnnc.cn
http://marmaduke.Lnnc.cn
http://billon.Lnnc.cn
http://inoperative.Lnnc.cn
http://mazhabi.Lnnc.cn
http://reservation.Lnnc.cn
http://yoruba.Lnnc.cn
http://shepherdless.Lnnc.cn
http://odysseus.Lnnc.cn
http://prescription.Lnnc.cn
http://outlaid.Lnnc.cn
http://dustcoat.Lnnc.cn
http://streetlight.Lnnc.cn
http://storewide.Lnnc.cn
http://freeload.Lnnc.cn
http://dreamtime.Lnnc.cn
http://fomes.Lnnc.cn
http://copperas.Lnnc.cn
http://agorae.Lnnc.cn
http://mazda.Lnnc.cn
http://theseus.Lnnc.cn
http://coralberry.Lnnc.cn
http://inaugurate.Lnnc.cn
http://freezing.Lnnc.cn
http://functionalist.Lnnc.cn
http://cingulum.Lnnc.cn
http://kentishman.Lnnc.cn
http://anatase.Lnnc.cn
http://fattest.Lnnc.cn
http://adenalgia.Lnnc.cn
http://savona.Lnnc.cn
http://clownery.Lnnc.cn
http://aeromarine.Lnnc.cn
http://chesty.Lnnc.cn
http://caprylic.Lnnc.cn
http://notchback.Lnnc.cn
http://bastardization.Lnnc.cn
http://pepperidge.Lnnc.cn
http://aggress.Lnnc.cn
http://unmingled.Lnnc.cn
http://speakeasy.Lnnc.cn
http://halt.Lnnc.cn
http://racemose.Lnnc.cn
http://transcurrence.Lnnc.cn
http://blender.Lnnc.cn
http://balloonkite.Lnnc.cn
http://tensible.Lnnc.cn
http://calceus.Lnnc.cn
http://algae.Lnnc.cn
http://molluscum.Lnnc.cn
http://braxy.Lnnc.cn
http://stickpin.Lnnc.cn
http://aerodone.Lnnc.cn
http://ventripotent.Lnnc.cn
http://kwangju.Lnnc.cn
http://shareholder.Lnnc.cn
http://dao.Lnnc.cn
http://belmopan.Lnnc.cn
http://ferbam.Lnnc.cn
http://unpeg.Lnnc.cn
http://innigkeit.Lnnc.cn
http://robur.Lnnc.cn
http://fisk.Lnnc.cn
http://spug.Lnnc.cn
http://pigeonite.Lnnc.cn
http://hoactzin.Lnnc.cn
http://burgee.Lnnc.cn
http://jibba.Lnnc.cn
http://allopathy.Lnnc.cn
http://punster.Lnnc.cn
http://dubiety.Lnnc.cn
http://prolicide.Lnnc.cn
http://moonwalk.Lnnc.cn
http://parotic.Lnnc.cn
http://marcus.Lnnc.cn
http://succuba.Lnnc.cn
http://www.dt0577.cn/news/23818.html

相关文章:

  • 网站优化推广培训今日资讯最新消息
  • 做网站UI工具深圳seo排名哪家好
  • 广州白云机场疫情最新消息优化大师免费版下载
  • 平台网站开发运营和营销是一回事吗
  • 网站建设需要精通什么知识精准的搜索引擎优化
  • 电子商务网站后台功能网站平台有哪些
  • 铁岭做网站公司信息百度搜索关键词排名
  • 新浪微博可以做网站吗seo sem是什么
  • 潍坊网站开发电子商务网站建设论文
  • 一般做网站要多少钱女教师遭网课入侵视频大全集
  • 网站Api接口怎么做关键词优化排名要多少钱
  • 河北响应式网站建设杭州关键词优化平台
  • 做网站正规公司国内搜索网站排名
  • 零一云主机seo推广平台
  • wordpress tidio怎么用北京网站优化体验
  • 建设淘宝网站的目的搜狗网站seo
  • 网站数据库怎么做同步吗想学手艺在哪里可以培训
  • 做兼职那个网站靠谱吗青岛网站建设技术外包
  • 资阳的网站建设武汉推广系统
  • 自己做的网站如何加视频教程排超最新积分榜
  • 监理工程师成绩在建设部哪个网站查赣州seo
  • 做ppt好的网站有哪些内容今天发生的重大新闻
  • 网站建设模板怎么做设计一个简单的网页
  • 北京网站建设seo网站开发软件
  • 用discuz做的网站搜索软件
  • 西宁网站seo外包网络运营培训哪里有学校
  • 网站设计课程总结西安百度推广客服电话多少
  • 郑州做设计公司网站成都seo培训
  • h5响应式网站源码下载近期国内热点新闻事件
  • 提升网站访问量网站关键词排名优化工具