LeetCode 每日一题 2024/7/8-2024/7/14

记录了初步解题思路 以及本地实现代码;并不一定为最优 也希望大家能一起探讨 一起进步


目录

      • 7/8 724. 寻找数组的中心下标
      • 7/9 3102. 最小化曼哈顿距离
      • 7/10 2970. 统计移除递增子数组的数目 I
      • 7/11 2972. 统计移除递增子数组的数目 II
      • 7/12 2974. 最小数字游戏
      • 7/13 3011. 判断一个数组是否可以变为有序
      • 7/14


7/8 724. 寻找数组的中心下标

从左到右依次判断

def pivotIndex(nums):""":type nums: List[int]:rtype: int"""s=sum(nums)l,r=0,sfor i,num in enumerate(nums):r-=numif l==r:return il+=numreturn -1

7/9 3102. 最小化曼哈顿距离

找到当前最大距离
判断移除该距离两个点中一个后的距离变换

def minimumDistance(points):""":type points: List[List[int]]:rtype: int"""def check(arr,i):n=len(arr)if arr[0][1]==i:return arr[n-1][0]-arr[1][0]elif arr[-1][1]==i:return arr[n-2][0]-arr[0][0]else:return arr[-1][0]-arr[0][0]sx=[(x-y,i) for i,(x,y) in enumerate(points)]sy=[(x+y,i) for i,(x,y) in enumerate(points)]sx.sort()sy.sort()v1 = sx[-1][0]-sx[0][0]v2 = sy[-1][0]-sy[0][0]ans = float("inf")if v1>=v2:i,j = sx[0][1],sx[-1][1]ans = min(ans,max(check(sx,i),check(sy,i)))ans = min(ans,max(check(sx,j),check(sy,j)))else:i,j = sy[0][1],sy[-1][1]ans = min(ans,max(check(sx,i),check(sy,i)))ans = min(ans,max(check(sx,j),check(sy,j)))return ans

7/10 2970. 统计移除递增子数组的数目 I

找到数组最长严格递增的位置i 即前缀nums[0]~nums[i]严格递增
如果i是数组最后的位置 那么所有子数组都可以移除即 n*(n+1)/2
否则 只保留前缀的一部分nums[0]~nums[i] 可以有i+2种
如果是前缀加后缀 设后缀第一个数为nums[j] 移除最后一个数是nums[j-1]
从后往前枚举j 直到nums[j]>=nums[j+1]
保持nums[i]<nums[j]

def incremovableSubarrayCount(nums):""":type nums: List[int]:rtype: int"""n=len(nums)i = 0while i<n-1 and nums[i]<nums[i+1]:i+=1if i==n-1:return n*(n+1)//2ans = i+2j=n-1while j==n-1 or nums[j]<nums[j+1]:while i>=0 and nums[i]>=nums[j]:i-=1ans += i+2j-=1return ans

7/11 2972. 统计移除递增子数组的数目 II

与昨天的一样
找到数组最长严格递增的位置i 即前缀nums[0]~nums[i]严格递增
如果i是数组最后的位置 那么所有子数组都可以移除即 n*(n+1)/2
否则 只保留前缀的一部分nums[0]~nums[i] 可以有i+2种
如果是前缀加后缀 设后缀第一个数为nums[j] 移除最后一个数是nums[j-1]
从后往前枚举j 直到nums[j]>=nums[j+1]
保持nums[i]<nums[j]

def incremovableSubarrayCount(nums):""":type nums: List[int]:rtype: int"""n=len(nums)i = 0while i<n-1 and nums[i]<nums[i+1]:i+=1if i==n-1:return n*(n+1)//2ans = i+2j=n-1while j==n-1 or nums[j]<nums[j+1]:while i>=0 and nums[i]>=nums[j]:i-=1ans += i+2j-=1return ans

7/12 2974. 最小数字游戏

依照规则 从小到大排序 奇数偶数位的数值调换

def numberGame(nums):""":type nums: List[int]:rtype: List[int]"""nums.sort()i = 0while i<len(nums):nums[i],nums[i+1]=nums[i+1],nums[i]i+=2return nums

7/13 3011. 判断一个数组是否可以变为有序

二进制1的个数相同的连续数值可以分为一组
每一组内必定可以实现有序
从头遍历 为了实现全部数组有序
排在后面小组的所有数值 必定需要大于前面小组的最大值
pmx记录前面小组的最大值 mx记录当前小组最大值

def canSortArray(nums):""":type nums: List[int]:rtype: bool"""n=len(nums)pmx = 0i = 0while i<n:mx = 0cnt = nums[i].bit_count()while i<n and nums[i].bit_counb()==cnt:x = nums[i]if x<pmx:return Falsemx=max(mx,x)i+=1pmx=mxreturn True

7/14


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/46050.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

微信小程序毕业设计-青少年科普教学系统项目开发实战(附源码+论文)

大家好&#xff01;我是程序猿老A&#xff0c;感谢您阅读本文&#xff0c;欢迎一键三连哦。 &#x1f49e;当前专栏&#xff1a;微信小程序毕业设计 精彩专栏推荐&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb; &#x1f380; Python毕业设计…

ftp pool 功能分析及 golang 实现

本文探究一种轻量级的 pool 实现 ftp 连接。 一、背景 简要介绍&#xff1a;业务中一般使用较多的是各种开源组件&#xff0c;设计有点重&#xff0c;因此本文探究一种轻量级的 pool 池的思想实现。 期望&#xff1a;设置连接池最大连接数为 N 时&#xff0c;批量执行 M 个 F…

vs2017/2019串口Qt Serial Port/modbus使用报错

vs2017/2019 Qt Serial Port/modbus配置 /* * 严重性 代码 说明 项目 文件 行 禁止显示状态 错误 LNK2019 无法解析的外部符号 "__declspec(dllimport) public: __cdecl QModbusTcpClient::QModbusTcpClient(class QObject *)" (__imp_??…

基于javaScript的冒泡排序

目录 一.前言 二.设计思路和原理 三.源代码展示 四. 案例运行结果 一.前言 冒泡排序简而言之&#xff0c;就是一种算法&#xff0c;能够把一系列的数据按照一定的顺序进行排列显示&#xff08;从小到大或从大到小&#xff09;。例如能够将数组[5,4,3,2,1]中的元素按照从小到…

读书笔记 《软技能:代码之外的生存指南(第2版)》

关于时间 每天记录并追踪自己的时间&#xff0c;以便我能了解自己的时间都去哪儿了 每天高效工作的时间有多少 这点皮皮哥深有同感,我发现我其实真正效率高的是早上,我一般周末周日的早晨回起的很早,泡一杯挂耳☕️,就在我的mac本上开始了本周的创作,我喜欢这种感觉 关于营…

ES6 Class 的继承(十一)

Class 可以通过extends关键字实现继承&#xff0c;这比 ES5 的通过修改原型链实现继承&#xff0c;要清晰和方便很多。 class Point { } class ColorPoint extends Point { }继承的特性&#xff1a; extends 关键字&#xff1a;使用 extends 来表示一个类继承自另一个类。supe…

了解Maven

一.环境搭建 如果使用的是社区版 版本要求为&#xff1a;2021.1-2022.1.4 如果使用的是idea专业版就无需版本要求,专业版下载私信我&#xff0c;免费教你下载 二&#xff0c;Maven 什么是Maven&#xff0c;也就是一个项目管理工具&#xff0c;用来基于pom的概念&#xff0c…

使用druid对sql进行血缘解析

实体类&#xff1a; Data public class SqlFlowEntity {/*表名称*/private String tableName;/*表操作类型*/private String type;/*涉及字段*/private List<String> columnList; } 核心代码&#xff1a; import com.alibaba.druid.sql.SQLUtils; import com.alibaba.d…

Ghidra comment add script

init # -*- coding: utf-8 -*- import re from ghidra.program.model.listing import CodeUnit# 获取当前程序和指令迭代器 program getCurrentProgram() listing program.getListing() instructionIterator listing.getInstructions(True)# 用于存储唯一的指令类型和操作数…

PostgreSQL修改最大连接数

在使用PostgreSQL 的时候&#xff0c;经常会遇到这样的错误提示&#xff0c; sorry, too many clients already&#xff0c;这是因为默认PostgreSQL最大连接数是 100, 一般情况下&#xff0c;个人使用时足够的&#xff0c;但是在生产环境&#xff0c;这个连接数是远远不够的&am…

Linux笔记之显示当前路径下文件的数量

Linux笔记之显示当前路径下文件的数量 在Linux中&#xff0c;ls -l 和 wc -l 是两个常用命令&#xff0c;分别用于列出目录内容的详细信息和计算行数。将这两个命令结合使用&#xff0c;可以快速统计目录中包含的文件和子目录的数量。 ls -l ls -l 命令用于列出目录中的内容…

python机器学习5 数据容器

Python中有几个数据容器如下&#xff1a; List&#xff0c;数组&#xff0c;如同Array数组。 Dictionarie&#xff0c;字典&#xff0c;可以通过文字来访问数据。 Sets&#xff0c;序列集&#xff0c;做数学交集、并集等计算时使用。 Tuple&#xff0c;序列&#xff0c…

Elasticsearch-多边形范围查询(8.x)

目录 一、字段设计 二、数据录入 三、查询语句 四、Java代码实现 开发版本详见&#xff1a;Elasticsearch-经纬度查询(8.x-半径查询)_es经纬度范围查询-CSDN博客 一、字段设计 PUT /aoi_points {"mappings": {"properties": {"location": {…

redis 夺命21问

1.什么是redis? Redis 是一个基于内存的高性能key-value数据库。 2.Reids的特点 Redis本质上是一个Key-Value类型的内存数据库&#xff0c;很像memcached&#xff0c;整个数据库统统加载在内存当中进行操作&#xff0c;定期通过异步操作把数据库数据flush到硬盘上进行保存。…

回归求助 教程分享

大侠幸会&#xff0c;在下全网同名「算法金」 0 基础转 AI 上岸&#xff0c;多个算法赛 Top 「日更万日&#xff0c;让更多人享受智能乐趣」 今日 217/10000 抱个拳&#xff0c;送个礼 更多内容&#xff0c;见微*公号往期文章&#xff1a;通透&#xff01;&#xff01;十大回…

NFT如何解决音乐版权的问题

音乐版权问题一直困扰着音乐产业。传统的音乐版权管理模式存在以下问题。需要注意的是&#xff0c;NFT在音乐版权领域仍处于早期发展阶段&#xff0c;存在一些需要解决的问题&#xff0c;例如技术标准不统一、应用场景有限、法律法规不明朗等。但随着技术的进步和市场的完善&am…

小程序自学教程

从0开始搭建微信小程序前后台 0、准备 如何安装&#xff1f;去CSDN搜索“xxx安装教程”即可。 &#xff08;1&#xff09;工具 IntelliJ IDEA&#xff08;必选&#xff09;——Java开发集成环境&#xff0c;可以前后端同时使用 Web Storm——web开发集成环境&#xff0c;主要…

【Dison夏令营 Day 18】如何用 Python 中的 Pygame 制作国际象棋游戏

对于 Python 中级程序员来说&#xff0c;国际象棋游戏是一个很酷的项目创意。在熟练使用类的同时&#xff0c;它也是制作图形用户界面应用程序的良好练习。在本教程中&#xff0c;您将学习到 使用 pygame 的基础知识。 学习如何使用 Python 类编码一个国际象棋游戏。 安装和设…

Mybatis防止SQL注入

防止SQL注入的中心思想就是参数化查询&#xff0c;将输入当作参数传递&#xff0c;而不是直接拼接到 SQL 语句中。 常见的防止SQL注入的方式 1、使用#{}占位符 2、使用动态SQL 3、[配置 SQL 注入过滤器](#配置 SQL 注入过滤器) 使用#{}占位符 先来看一个错误的示范${} /…

PostgreSQL的pg_dirtyread工具

PostgreSQL的pg_dirtyread工具 pg_dirtyread 是一个第三方PostgreSQL扩展&#xff0c;它允许用户读取数据库文件中的“脏”数据&#xff0c;即那些被标记为删除或不再可见的数据。这个扩展对于数据恢复和调试非常有用&#xff0c;尤其是在需要恢复被删除或更新前的数据时。 以…