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

(双指针)Leetcode283.移动零-替换数字类别+Leetcode15. 三数之和

Leetcode283.移动零

283. 移动零 - 力扣(LeetCode)

方法一:slow代表可以更新的位置,fast是不等于0的位置

class Solution:def moveZeroes(self, nums: List[int]) -> None:"""Do not return anything, modify nums in-place instead."""#快慢指针,不等于0slow更新,最后全部等于0n=len(nums)slow=0for fast in range(n):if nums[fast]!=0:nums[slow]=nums[fast]slow=slow+1for slow in range(slow,n):nums[slow]=0return nums

方法二:原地栈

class Solution(object):def moveZeroes(self, nums):""":type nums: List[int]:rtype: None Do not return anything, modify nums in-place instead."""stack_size = 0for x in nums:if x:nums[stack_size] = x  # 把 x 入栈stack_size += 1for i in range(stack_size, len(nums)):nums[i] = 0

Leetcode15. 三数之和

15. 三数之和 - 力扣(LeetCode)

class Solution(object):def threeSum(self, nums):""":type nums: List[int]:rtype: List[List[int]]"""nums.sort()#对原列表排序b = sorted(a)保留原列表results=[]i=0while i<len(nums):if i!=0 and nums[i]==nums[i-1]:i=i+1continue#很重要left=i+1right=len(nums)-1while left<right:# while (left+1)<right and nums[left]==nums[left+1]:#     left=left+1# while left<(right-1) and nums[right]==nums[right-1]:#     right=right-1# 相等才要去重!if nums[i]+nums[left]+nums[right]==0:results.append([nums[i],nums[left],nums[right]])#左边去重while (left+1)<right and nums[left]==nums[left+1]:left=left+1#右边去重while left<(right-1) and nums[right]==nums[right-1]:right=right-1#找到答案一起收缩left=left+1right=right-1elif nums[i]+nums[left]+nums[right]>0:right=right-1else:# nums[i]+nums[left]+nums[right]<0left=left+1i=i+1return results#-10 -5 -5 -4 -4 -3 0 1 2 2 2 2 5 5

http://www.dtcms.com/a/358308.html

相关文章:

  • UI前端大数据可视化实战策略:如何设计符合用户认知的数据可视化界面?
  • 【计算机网络】HTTP是什么?
  • Ansible Playbook 调试与预演指南:从语法检查到连通性排查
  • 一体化步进伺服电机在汽车线束焊接设备中的应用案例
  • MongoDB 源码编译与调试:深入理解存储引擎设计 内容详细
  • HarmonyOS元服务开发
  • 深入解析HarmonyOS:UIAbility与Page的生命周期协同
  • TensorFlow 面试题及详细答案 120道(71-80)-- 性能优化与调试
  • 坚鹏请教DEEPSEEK:请问中国领先的AI智能体服务商有哪些?知行学
  • 深度学习系列 | Seq2Seq端到端翻译模型
  • 离线大文件与断点续传:ABP + TUS + MinIO/S3
  • IAR工程如何搭建vscode+clangd编辑环境
  • 如何使用快照将 AWS OpenSearch 服务中的数据从开发环境复制到生产环境
  • 互联网医院系统优势介绍
  • 嵌入式linux相机(2)
  • 设计模式 - 静态工厂模式 + 策略模式,
  • 【Java后端】MySQL 常见 SQL 语句优化指南
  • AI 赋能综合能源管理系统:开启智慧能源新时代
  • 掌握表单:React中的受控组件与表单处理
  • 详解Vue2、Vue3与React的Diff算法
  • 【Android】OkHttp发起GET请求 POST请求
  • React Router 6 获取路由参数
  • 【自然语言处理与大模型】如何进行大模型多模态微调
  • 【ASP.NET Core】双Token机制在ASP.NET Core中的实现
  • OpenCV 图像形态学操作与边缘检测实战指南
  • ESPTimer vs GPTimer:ESP32 定时器系统深度解析
  • 机器学习 - Kaggle项目实践(6)Dogs vs. Cats Redux: Kernels Edition 猫狗二分类
  • 最强分布式锁工具:Redisson
  • Git 的核心工作流程(三区域模型)
  • github同一台电脑支持两个或以上的ssh账户(macos或Linux系统),解决Key is already in use问题