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

Python算法练习 9.11

leetcode 392 判断子序列

给定字符串 s 和 t ,判断 s 是否为 t 的子序列。

字符串的一个子序列是原始字符串删除一些(也可以不删除)字符而不改变剩余字符相对位置形成的新字符串。(例如,"ace""abcde"的一个子序列,而"aec"不是)。

输入:s = "abc", t = "ahbgdc"
输出:true
class Solution(object):def isSubsequence(self, s, t):""":type s: str:type t: str:rtype: bool"""sflag = 0tflag = 0while 1:if tflag > len(t) - 1 or sflag > len(s) - 1:breakif s[sflag] == t[tflag]:sflag += 1tflag += 1else:tflag += 1if sflag == len(s):return Trueelse:return False

 

 leetcode 11 盛水最多的容器

给定一个长度为 n 的整数数组 height 。有 n 条垂线,第 i 条线的两个端点是 (i, 0) 和 (i, height[i]) 。

找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。

返回容器可以储存的最大水量。

说明:你不能倾斜容器。

 

输入:[1,8,6,2,5,4,8,3,7]
输出:49 
解释:图中垂直线代表输入数组 [1,8,6,2,5,4,8,3,7]。在此情况下,容器能够容纳水(表示为蓝色部分)的最大值为 49。

其实就是短的那条线与两条线距离围成的长方形面积

双指针,由数组两端向中间移动

不管移动长板还是短板,宽一定减小,而高度由短板决定

所以移动短板:宽减小,高有可能增大,面积有可能增大

移动长板:宽减小,高一定减小,面积一定减小(下一个板更长,高仍然不变;下一个板更短,高就更短)

所以每次移动短板 

class Solution(object):def maxArea(self, height):""":type height: List[int]:rtype: int"""left = 0right = len(height) - 1maxArea = 0while left < right:maxArea = max(maxArea, min(height[left], height[right])*(right - left))if height[left] > height[right]:right -= 1else:left += 1return maxArea

leetcode 75 K和数对的最大数目

给你一个整数数组 nums 和一个整数 k 。

每一步操作中,你需要从数组中选出和为 k 的两个整数,并将它们移出数组。

返回你可以对数组执行的最大操作数。

输入:nums = [1,2,3,4], k = 5
输出:2
解释:开始时 nums = [1,2,3,4]:
- 移出 1 和 4 ,之后 nums = [2,3]
- 移出 2 和 3 ,之后 nums = []
不再有和为 5 的数对,因此最多执行 2 次操作。
class Solution(object):def maxOperations(self, nums, k):""":type nums: List[int]:type k: int:rtype: int"""numsSort = sorted(nums)left = 0right = len(nums) - 1maxOperations = 0while left < right:currentSum = numsSort[left]+numsSort[right]if currentSum > k:right -= 1if currentSum < k:left += 1if currentSum == k:maxOperations += 1right -= 1left += 1return maxOperations

 

 时间太久,算了就这样,摆烂了

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

相关文章:

  • 2023年中秋节和国庆节放假几天?用待办软件记录放假安排并提醒
  • 使用Python实现一个完整的声音采样和模拟,使用采样声音播放输入的文字,实现代码进行详细注释,并进行测试
  • 测试----计算机网络
  • SVN 索引版本与打包版本号不匹配
  • HummerRisk V1.4.1 发布
  • php的html实体和字符之间的转换
  • docker-compose deploy 高可用 elasticsearch TLS
  • 让GPT成为您的科研加速器丨GPT引领前沿与应用突破之GPT4科研实践技术与AI绘图
  • 工业互联网的破局密钥——低代码开发
  • JavaScript知识系列(2)每天10个小知识点
  • Kotlin面向对象基础使用方法(继承、接口、Lambda、空指针检查机制等)
  • Android USB电源管理
  • YOLO目标检测——路标数据集+已标注voc和yolo格式标签下载分享
  • Item-Based Recommendations with Hadoop
  • 基于物理层网络编码的相位同步算法matlab仿真
  • 数据结构——七大排序[源码+动图+性能测试]
  • G. The Morning Star
  • 电池的健康状态 SOH 估计
  • Web 安全之 Permissions Policy(权限策略)详解
  • 【黄啊码】nginx如何设置php运行的
  • 无涯教程-JavaScript - ISPMT函数
  • LeetCode 面试题 03.05. 栈排序
  • 构建微服务项目时启动网关服务失败的解决方案
  • 零基础教程:使用yolov8训练无人机VisDrone数据集
  • 【Mysql专题】使用Mysql做排行榜,线上实例
  • matlab数据处理: cell table array+datetime
  • 如何应用运营商大数据精准营销?
  • AJAX学习笔记5同步与异步理解
  • 911面试
  • 【Java基础篇 | 面向对象】—— 继承