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

(双指针)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.xdnf.cn/news/19191.html

相关文章:

  • day44-Ansible变量
  • ESP32C3和ESP32S3的区别有哪些?该怎么选型?
  • React Router 6 获取路由参数
  • 无人机也能称重?电力巡检称重传感器安装与使用指南
  • 算法之x数之和
  • B树与B+树的原理区别应用
  • 第12章:推荐算法与实践
  • 揭开智能体架构面纱:90% 属软件工程,10% 为 AI 技术
  • nginx(自写)
  • 微服务搭建(SpringBoot + Dubbo + Nacos)
  • vue+Django 双推荐算法旅游大数据可视化系统Echarts mysql数据库 带爬虫
  • 【学Python自动化】 4. Python 控制流与函数学习笔记
  • 嵌入式Linux驱动开发:ICM20608六轴传感器SPI驱动
  • 深度学习核心损失函数详解:交叉熵、MSE、对比学习(InfoNCE)
  • 科技感网页计时器.html
  • Linux系统统计用户登录和注销时间的工具之ac
  • 【计算机408计算机网络】第四章:自底向上五层模型之网络层
  • 使用python格式化nginx配置文件
  • OSI与TCP/IP各层功能详解
  • 吴恩达机器学习作业八:SVM支持向量机
  • 从零开始的python学习——注释与运算符
  • 机器学习 - Kaggle项目实践(6)Dogs vs. Cats Redux: Kernels Edition 猫狗二分类
  • 【Android】OkHttp发起GET请求 POST请求
  • 「从 0 到 1」的 Python-requests 爬虫完整教程
  • 内网后渗透攻击--跨域攻击
  • for in+逻辑表达式 生成迭代对象,最后转化为列表 ——注意list是生成器转化为列表,但[生成器]得到的就是一个列表,其中包含一个生成器元素
  • 字节跳动出品的 AI开发工具 : Trae:开启 AI 编程新时代
  • 解读IEC 62477-2-2018
  • 05.《ARP协议基础知识探秘》
  • 基于大模型与 PubMed 检索的光谱数据分析系统