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

python算法-移动零盛最多的水--Day021

文章目录

  • 前言
    • 采用创新方式,精选趣味、实用性强的例子,从不同难度、不同算法、不同类型和不同数据结构进行总结,全面提升算法能力。
    • 例1.移动零
    • 例2.盛最多的水


前言

采用创新方式,精选趣味、实用性强的例子,从不同难度、不同算法、不同类型和不同数据结构进行总结,全面提升算法能力。

例1.移动零

给定⼀个数组 nums ,编写⼀个函数将所有 0 移动到数组的末尾,同时保持⾮零元素的相对顺序。
请注意 ,必须在不复制数组的情况下原地对数组进⾏操作。
示例:输⼊: nums = [0,1,0,3,12]
输出: [1,3,12,0,0]

代码如下(示例):

class sol:def movezero(self,li):left,right = 0,0#设置双指针while right< len(li):#设置循环条件if li[right] != 0:li[left],li[right] = li[right],li[left]#当右指针不等于零时,左指针和右指针的值进行交换left += 1#满足交换,左指针加1right += 1
li = [2,1,0,0,3,0,5,0]
ss = sol()
ss.movezero(li)
print(li)

得到的结果:[2, 1, 3, 5, 0, 0, 0, 0]

例2.盛最多的水

给定⼀个⻓度为 n 的整数数组 height 。有 n 条垂线,第 i 条线的两个端点是 (i, 0) 和
(i, height[i]) 。
找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的⽔。
返回容器可以储存的最⼤⽔量。
示例:
请添加图片描述
输⼊: [1,8,6,2,5,4,8,3,7]
输出: 49

代码如下(示例):

class sol:def sheng(self,li):left,right = 0,len(li)-1#初始化双指针res = 0  # 记录最大面积while left < right:  # 遍历所有可能的容器area = (right - left)*min(li[right],li[left])res = max(res,area)# 更新最大值if li[left] < li[right]:# 移动较小高度的指针left += 1else:right -= 1return res
ss = sol()
li = [1,8,6,2,5,4,8,3,7]
a = ss.sheng(li)
print(a)

得到的结果:49


http://www.xdnf.cn/news/12643.html

相关文章:

  • WinCC学习系列-变量模拟器(WinCC TAG Simulator )
  • Wan2.1环境的安装,以及使用产品图片合成展示视频
  • 嵌入式主板详解与选购指南
  • 关于dropbear ssh服务
  • 如何让其他品牌更难转化走我们的用户?
  • thinkphp-queue队列随笔
  • Dubbo学习(一):Dubbo介绍
  • C#使用MindFusion.Diagramming框架绘制流程图(1):基础类型
  • 服务器出现故障怎么办?快速排查与解决方法
  • dfn序的应用 (P1273 有线电视网题解)
  • ROS1: 使用rosbag的方式将点云topic保存为pcd文件
  • 中小制造企业的数字化转型,如何控制工业软件应用成本?
  • Docker 容器化基础:镜像、容器与仓库的本质解析
  • keil编译工程,结合map文件和bin文件,实测C语言中不同类型的变量存储在不同的内存区域
  • 柴油发电机组接地电阻柜的作用
  • yolov8自训练模型作为预训练权重【增加新类别】注意事项
  • 我用Amazon Q写了一个Docker客户端,并上架了懒猫微服商店
  • Web 3D协作平台开发案例:构建制造业远程设计与可视化协作
  • PC端直接打印功能(包括两张图片合并功能)
  • html 滚动条滚动过快会留下边框线
  • 2022年CSP-S1提高级第一轮题解
  • C++11新增标准讲解(上)
  • 【递归、搜索与回溯】专题三 穷举vs暴搜vs回溯vs剪枝
  • 【Vue】指令补充+样式绑定+计算属性+侦听器
  • 6.6 打卡
  • 西门子 S7-1200 PLC 海外远程运维技术方案
  • vue3+TS+eslint9配置
  • 《强连通分量》题集
  • 如何在Windows本机安装Python并确保与Python.NET兼容
  • day46python打卡