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

leetcode 11-20(2024.08.15)

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

1. 11:盛最多水的容器

class Solution:def maxArea(self, height: List[int]) -> int:res = 0left = 0right = len(height) - 1while left < right:area = (right - left) * min(height[left], height[right])res = area if area > res else resif height[left] < height[right]:left = left + 1else:right = right - 1return res

2. 12:整数转罗马数字

class Solution:def intToRoman(self, num: int) -> str:res = ""haxi = {1000: "M", 900: "CM", 500: "D", 400: "CD", 100: "C",90: "XC", 50: "L", 40: "XL", 10: "X",9: "IX", 5: "V", 4: "IV", 1: "I"}for key in haxi:while key <= num:num = num - keyres = res + haxi[key]return res

3. 13:罗马数字转整数 

class Solution:def romanToInt(self, s: str) -> int:res = 0haxi = {"I": 1, "V": 5, "X": 10, "L": 50, "C": 100, "D": 500, "M": 1000}for i in range(len(s) - 1):if haxi[s[i]] >= haxi[s[i + 1]]:res = res + haxi[s[i]]else:res = res - haxi[s[i]]res = res + haxi[s[-1]]return res

4. 14:最长公共前缀

class Solution:def longestCommonPrefix(self, strs: List[str]) -> str:def get_same(str1, str2):res = ''i = 0while i < len(str1) and i < len(str2):if str1[i] == str2[i]:res = res + str1[i]i = i + 1else:breakreturn resres = strs[0]for i in range(len(strs)):res = get_same(res, strs[i])return res

 5. 15:三数之和

class Solution:def threeSum(self, nums: List[int]) -> List[List[int]]:res = []nums.sort()for i in range(len(nums) - 2):if i > 0 and nums[i] == nums[i - 1]:continueleft = i + 1right = len(nums) - 1while left < right:sum = nums[i] + nums[left] + nums[right]if sum > 0:right = right - 1elif sum < 0:left = left + 1elif sum == 0:res.append([nums[i], nums[left], nums[right]])left = left + 1while left < right and nums[left] == nums[left - 1]:left = left + 1right = right - 1while left < right and nums[right] == nums[right + 1]:right = right - 1return res

 6. 16:最接近的三数之和

class Solution:def threeSumClosest(self, nums: List[int], target: int) -> int:minimum = float("inf")nums.sort()for i in range(len(nums) - 2):if i > 0 and nums[i] == nums[i - 1]:continueleft = i + 1right = len(nums) - 1while left < right:sum = nums[i] + nums[left] + nums[right]if sum == target:return sumelif sum < target:left = left + 1elif sum > target:right = right - 1if abs(sum - target) < minimum:res = summinimum = abs(sum - target)return res

 7. 17:电话号码的字母组合

 8. 18:四数之和

class Solution:def fourSum(self, nums: List[int], target: int) -> List[List[int]]:res = []nums.sort()for i in range(len(nums) - 3):if i > 0 and nums[i] == nums[i - 1]:continuefor j in range(i + 1, len(nums) - 2):if j > i + 1 and nums[j] == nums[j - 1]:continueleft = j + 1right = len(nums) - 1while left < right:sum = nums[i] + nums[j] + nums[left] + nums[right]if sum < target:left = left + 1elif sum > target:right = right - 1elif sum == target:res.append([nums[i], nums[j], nums[left], nums[right]])left = left + 1while left < right and nums[left] == nums[left - 1]:left = left + 1right = right - 1while left < right and nums[right] == nums[right + 1]:right = right - 1return res

 9. 19:删除链表的倒数第N个结点

# Definition for singly-linked list.
# class ListNode:
#     def __init__(self, val=0, next=None):
#         self.val = val
#         self.next = next
class Solution:def removeNthFromEnd(self, head: Optional[ListNode], n: int) -> Optional[ListNode]:dummy = slow = fast = ListNode()dummy.next = headwhile n:fast = fast.nextn = n - 1while fast.next:slow = slow.nextfast = fast.nextslow.next = slow.next.nextreturn dummy.next

10. 20:有效的括号 

class Solution:def isValid(self, s: str) -> bool:stack = []pair = {"(": ")", "[": "]", "{": "}"}for i in s:if i in "([{":stack.append(pair[i])else:if stack and stack[-1] == i:stack.pop()else:return Falseif stack:return Falseelse:return True

http://www.lryc.cn/news/424919.html

相关文章:

  • C语言整数溢出的问题
  • Linux学习之路 -- 进程 -- 进程间通信 -- 管道通信
  • GB/T 38082-2019 生物降解塑料购物袋检测
  • docker数据卷和资源控制
  • Kafka系统及其角色
  • 从零开始构建霸王餐返利APP的技术路线与挑战
  • 安装Jmeter,配置jdk
  • Aria2@RPC下载@Alist批量下载
  • 神经串联式语音转换:对基于串联的单次语音转换方法的再思考 论文笔记
  • 机器学习(1)--数据可视化
  • docker部署Prometheus、Grafana
  • 5.mysql多表查询
  • 【前端面试】挖掘做过的nextJS项目(上)
  • 【Unity-UGUI】UGUI知识汇总
  • JavaScript性能测试:策略、工具与实践
  • 嵌入式软件开发学习一:软件安装(保姆级教程)
  • SpringMVC学习中遇到的不懂注解记录
  • Java面试题--分布式锁
  • 一文讲清数据平台与数据中台的关系与区别
  • Android的Service和Thread的区别
  • 经纬恒润亮相第四届焉知汽车年会,功能安全赋能域控
  • 掌握JavaScript单元测试:最佳实践与技术指南
  • spring boot 古茶树管理系统---附源码19810
  • 00067期 matlab中的asv文件
  • JMeter高效管理测试数据-参数化
  • python学习之writelines
  • STM32学习笔记13-FLASH闪存
  • UIButton的UIEdgeInsetsMake属性(setTitleEdgeInsets,setImageEdgeInsets)
  • 子网掩码是什么?
  • SQLALchemy 数据的 CRUD 操作