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

leetcode 21-30(2024.08.16)

立个flag,1-100题每天分配10题,不会就先空着(5,9)。

1. 21:合并两个有序链表

# Definition for singly-linked list.
# class ListNode:
#     def __init__(self, val=0, next=None):
#         self.val = val
#         self.next = next
class Solution:def mergeTwoLists(self, list1: Optional[ListNode], list2: Optional[ListNode]) -> Optional[ListNode]:dummy = res = ListNode()while list1 and list2:if list1.val < list2.val:res.next = list1list1 = list1.nextelse:res.next = list2list2 = list2.nextres = res.nextif list1:res.next = list1if list2:res.next = list2return dummy.next

2. 22:括号生成

class Solution:def generateParenthesis(self, n: int) -> List[str]:def backtracking(left, right, n, path, res):if left > n or right > n or right > left:returnif len(path) == 2 * n:valid = "".join(path.copy())res.append(valid)path.append('(')backtracking(left + 1, right, n, path, res)path.pop()path.append(')')backtracking(left, right + 1, n, path, res)path.pop()res = []path = []left = 0right = 0backtracking(left, right, n, path, res)return res

3. 23:合并K个升序链表

# Definition for singly-linked list.
# class ListNode:
#     def __init__(self, val=0, next=None):
#         self.val = val
#         self.next = next
class Solution:def mergeKLists(self, lists: List[Optional[ListNode]]) -> Optional[ListNode]:def mergeTwoLists(l1, l2):dummy = res = ListNode()while l1 and l2:if l1.val < l2.val:res.next = l1l1 = l1.nextelse:res.next = l2l2 = l2.nextres = res.nextif l1:res.next = l1if l2:res.next = l2return dummy.nextres = Nonefor i in lists:res = mergeTwoLists(res, i)return res

 4. 24:两两交换链表中的节点

# Definition for singly-linked list.
# class ListNode:
#     def __init__(self, val=0, next=None):
#         self.val = val
#         self.next = next
class Solution:def swapPairs(self, head: Optional[ListNode]) -> Optional[ListNode]:dummy = res = ListNode()res.next = headwhile head and head.next:temp = head.nexthead.next = head.next.nexttemp.next = headres.next = temphead = head.nextres = res.next.nextreturn dummy.next

 5. 25:K个一组翻转链表 

 6. 26:删除有序数组中的重复项 

class Solution:def removeDuplicates(self, nums: List[int]) -> int:slow = 0fast = 0while fast < len(nums):if nums[slow] != nums[fast]:slow = slow + 1nums[slow] = nums[fast]fast = fast + 1return slow + 1

 7. 27:移除元素

class Solution:def removeElement(self, nums: List[int], val: int) -> int:slow = 0fast = 0while fast < len(nums):if nums[fast] != val:nums[slow] = nums[fast]slow = slow + 1fast = fast + 1return slow

 8. 28:找出字符串中第一个匹配项的下标

class Solution:def strStr(self, haystack: str, needle: str) -> int:lis = []for i in range(len(haystack)):if haystack[i] == needle[0]:lis.append(i)res = -1for i in lis:if haystack[i : i + len(needle)] == needle:res = ibreakreturn res

 9. 29:两数相除 

 10. 30:串联所有单词的子串

class Solution:def findSubstring(self, s: str, words: List[str]) -> List[int]:def pair(st, haxi, leng):begin = 0while begin + leng <= len(st):word = st[begin : begin + leng]if word in haxi and haxi[word] > 0:haxi[word] = haxi[word] - 1begin = begin + lengelse:return Falsereturn Truehaxi = {}for word in words:if word in haxi:haxi[word] = haxi[word] + 1else:haxi[word] = 1res = []num = len(words)leng = len(words[0])length = num * lengleft = 0right = left + lengthwhile right <= len(s):st = s[left:right]output = pair(st, haxi.copy(), leng)if output:res.append(left)left = left + 1right = left + lengthreturn res

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • P2460[SDOI2007] 科比的比赛
  • PyTorch--深度学习
  • 开源通用验证码识别OCR —— DdddOcr 源码赏析(一)
  • [C#]winform基于opencvsharp结合Diffusion-Low-Light算法实现低光图像增强黑暗图片变亮变清晰
  • 基于改进YOLOv8的景区行人检测算法
  • C语言——函数专题
  • LSTM 模型原理
  • Python----爬虫
  • django之select_related 与 prefetch_related用法
  • windows C++- C++/WinRT和COM组件(下)
  • Python编写Word文档
  • css-定位
  • 【Linux】——进程概念(万字解读)
  • 【嵌入式linux开发】智能家居入门6:最新ONENET,物联网开放平台(QT、微信小程序、MQTT协议、ONENET云平台、旭日x3派)
  • Linux环境下运行介绍
  • AWS实战 - 利用IAM对S3做访问控制
  • UMLCHINA 首席专家潘加宇鼎力推荐
  • 对超线程几个不同角度的解释
  • 关于字符编码你应该知道的事情
  • 经典排序算法及其 Java 实现
  • 看图轻松理解数据结构与算法系列(基于数组的栈)
  • 力扣(LeetCode)965
  • 聊聊springcloud的EurekaClientAutoConfiguration
  • 盘点那些不知名却常用的 Git 操作
  • 如何在 Tornado 中实现 Middleware
  • 函数计算新功能-----支持C#函数
  • 完善智慧办公建设,小熊U租获京东数千万元A+轮融资 ...
  • ​软考-高级-系统架构设计师教程(清华第2版)【第12章 信息系统架构设计理论与实践(P420~465)-思维导图】​
  • #define 用法
  • #NOIP 2014#day.2 T1 无限网络发射器选址
  • ${factoryList }后面有空格不影响
  • (done) NLP “bag-of-words“ 方法 (带有二元分类和多元分类两个例子)词袋模型、BoW
  • (NO.00004)iOS实现打砖块游戏(九):游戏中小球与反弹棒的碰撞
  • (附源码)springboot课程在线考试系统 毕业设计 655127
  • (紀錄)[ASP.NET MVC][jQuery]-2 純手工打造屬於自己的 jQuery GridView (含完整程式碼下載)...
  • (精确度,召回率,真阳性,假阳性)ACC、敏感性、特异性等 ROC指标
  • (南京观海微电子)——COF介绍
  • (牛客腾讯思维编程题)编码编码分组打印下标(java 版本+ C版本)
  • (转载)深入super,看Python如何解决钻石继承难题
  • ./configure、make、make install 命令
  • ./include/caffe/util/cudnn.hpp: In function ‘const char* cudnnGetErrorString(cudnnStatus_t)’: ./incl
  • .cfg\.dat\.mak(持续补充)
  • .htaccess 强制https 单独排除某个目录
  • .net core + vue 搭建前后端分离的框架
  • .NET Core 版本不支持的问题
  • .NET Core 项目指定SDK版本
  • .NET/C# 中设置当发生某个特定异常时进入断点(不借助 Visual Studio 的纯代码实现)
  • .NET面试题解析(11)-SQL语言基础及数据库基本原理
  • /etc/fstab和/etc/mtab的区别
  • ??在JSP中,java和JavaScript如何交互?
  • @param注解什么意思_9000字,通俗易懂的讲解下Java注解
  • [ HTML + CSS + Javascript ] 复盘尝试制作 2048 小游戏时遇到的问题
  • [ linux ] linux 命令英文全称及解释
  • [10] CUDA程序性能的提升 与 流
  • [2016.7 day.5] T2