LeetCode 每日一题 2024/11/4-2024/11/10

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


目录

      • 11/4 633. 平方数之和
      • 11/5 3222. 求出硬币游戏的赢家
      • 11/6 3254. 长度为 K 的子数组的能量值 I
      • 11/7 3255. 长度为 K 的子数组的能量值 II
      • 11/8 3235. 判断矩形的两个角落是否可达
      • 11/9 3242. 设计相邻元素求和服务
      • 11/10 540. 有序数组中的单一元素


11/4 633. 平方数之和

  1. 正常
    计算最大可能的平方数 依次减小判断
  2. 双指针
    假设a从0开始,b从最大可能数开始 如果aa+bb
    小于c 那么增加a
    大于c 那么减小b
def judgeSquareSum(c):""":type c: int:rtype: bool"""import mathn = int(math.sqrt(c))for i in range(n,-1,-1):tmp = c-i*im = int(math.sqrt(tmp))if m*m==tmp:return Truereturn Falsedef judgeSquareSum2(c):""":type c: int:rtype: bool"""import mathr = int(math.sqrt(c))l = 0while l<=r:s = r*r+l*lif s==c:return Trueelif s<c:l+=1else:r-=1return False

11/5 3222. 求出硬币游戏的赢家

115 = 75+4*10
取一次需要1个75 4个10
计算最多能取几次 如果是奇数次就是A赢 偶数次B赢

def losingPlayer(x, y):""":type x: int:type y: int:rtype: str"""return "Alice" if min(x,y//4)%2 else "Bob"

11/6 3254. 长度为 K 的子数组的能量值 I

如果满足条件那么相邻的上升数值相差1
cnt统计以当前i为结尾有多少个连续上升的个数
如果个数大于等于k个那么以当前i为最后一个数可以得到满足条件的子数组

def resultsArray(nums, k):""":type nums: List[int]:type k: int:rtype: List[int]"""n=len(nums)cnt=0ans = [-1]*(n-k+1)for i in range(n):if i==0 or nums[i]-nums[i-1]!=1:cnt=1else:cnt+=1if cnt>=k:ans[i-k+1]=nums[i]return ans

11/7 3255. 长度为 K 的子数组的能量值 II

如果满足条件那么相邻的上升数值相差1
cnt统计以当前i为结尾有多少个连续上升的个数
如果个数大于等于k个那么以当前i为最后一个数可以得到满足条件的子数组

def resultsArray(nums, k):""":type nums: List[int]:type k: int:rtype: List[int]"""n=len(nums)cnt=0ans = [-1]*(n-k+1)for i in range(n):if i==0 or nums[i]-nums[i-1]!=1:cnt=1else:cnt+=1if cnt>=k:ans[i-k+1]=nums[i]return ans

11/8 3235. 判断矩形的两个角落是否可达

如果起点或终点在园内 不存在路径
如果园和左、上边相交 并且和右、下边相交 不存在路径

def canReachCorner(xCorner, yCorner, circles):""":type xCorner: int:type yCorner: int:type circles: List[List[int]]:rtype: bool"""def incircle(px,py,x,y,r):return (x-px)**2+(y-py)**2<=r**2def topleft(x,y,r,xc,yc):return (abs(x)<=r and 0<=y<=yc)or(0<=x<=xc and abs(y-yc)<=r)or(incircle(x, y, 0, yc, r))def bottomright(x,y,r,xc,yc):return (abs(y)<=r and 0<=x<=xc)or(0<=y<=yc and abs(x-xc)<=r)or(incircle(x, y, xc, 0, r))def circleincircle(x1,y1,r1,x2,y2,r2,xc,yc):return (x1 - x2) ** 2 + (y1 - y2) ** 2 <= (r1 + r2) ** 2 and x1 * r2 + x2 * r1 < (r1 + r2) * xCorner and y1 * r2 + y2 * r1 < (r1 + r2) * yCornern=len(circles)visited=[False]*ndef dfs(i):x1,y1,r1=circles[i]if bottomright(x1, y1, r1, xCorner, yCorner):return Truevisited[i]=Truefor j,(x2,y2,r2) in enumerate(circles):if (not visited[j]) and circleincircle(x1, y1, r1, x2, y2, r2, xCorner, yCorner) and dfs(j):return Truereturn Falsefor i,(x,y,r) in enumerate(circles):if incircle(0, 0, x, y, r) or incircle(xCorner, yCorner, x, y, r):return Falseif (not visited[i]) and topleft(x, y, r, xCorner, yCorner) and dfs(i):return Falsereturn True

11/9 3242. 设计相邻元素求和服务

记录每个value的位置

class NeighborSum(object):def __init__(self, grid):""":type grid: List[List[int]]"""self.n=len(grid)self.grid=gridself.m = {}for i in range(self.n):for j in range(self.n):self.m[grid[i][j]]=(i,j)def adjacentSum(self, value):""":type value: int:rtype: int"""i,j = self.m[value]ans = 0if i-1>=0:ans+=self.grid[i-1][j]if i+1<self.n:ans+=self.grid[i+1][j]if j-1>=0:ans+=self.grid[i][j-1]if j+1<self.n:ans+=self.grid[i][j+1]return ansdef diagonalSum(self, value):""":type value: int:rtype: int"""i,j = self.m[value]ans = 0if i-1>=0 and j-1>=0:ans+=self.grid[i-1][j-1]if i+1<self.n and j+1<self.n:ans+=self.grid[i+1][j+1]if i+1<self.n and j-1>=0:ans+=self.grid[i+1][j-1]if i-1>=0 and j+1<self.n:ans+=self.grid[i-1][j+1]return ans

11/10 540. 有序数组中的单一元素

在单一元素前 元素成对出现
偶数位和偶数位+1元素相同 单一元素位置为偶数
单一元素后 元素成对出现 偶数位和偶数位-1元素相同
二分查找偶数位元素

def singleNonDuplicate(nums):""":type nums: List[int]:rtype: int"""l,r = 0,len(nums)-1while l<r:mid = (l+r)//2if mid%2==1:mid-=1if nums[mid]==nums[mid+1]:l = mid+2else:r = midreturn nums[l]

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

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

相关文章

关于我、重生到500年前凭借C语言改变世界科技vlog.18——内存函数

文章目录 1. memcpy函数2. memmove函数3. memset函数4. memcmp函数希望读者们多多三连支持小编会继续更新你们的鼓励就是我前进的动力&#xff01; 内存函数是用于 操作内存块的一组函数&#xff0c;它们可以对内存进行复制、移动、设置和比较等操作。这些函数主要在 <str…

SpringCloud篇(注册中心 - Nacos)

目录 一、Nacos安装指南 1. Windows安装 1.1. 下载安装包 1.2. 解压 1.3. 端口配置 1.4. 启动 1.5. 访问 2. Linux安装 2.1. 安装JDK 2.2. 上传安装包 2.3. 解压 2.4. 端口配置 2.5. 启动 3. Nacos的依赖 二、Nacos注册中心的入门使用 1. 认识和安装Nacos 2. 服…

链游系统定制化开发:引领游戏产业的新时代

在数字革命的浪潮中&#xff0c;链游&#xff08;区块链游戏&#xff09;作为一种新兴游戏形式&#xff0c;正重新定义游戏产业的发展方向。链游将区块链技术与传统游戏结合&#xff0c;使游戏体验更加公平透明&#xff0c;并赋予玩家真正的资产所有权。这一领域不仅为玩家带来…

《传统视觉算法在视觉算法中的地位及应用场景

一、引言 在计算机视觉领域的发展历程中&#xff0c;传统视觉算法扮演了至关重要的角色。尽管近年来深度学习算法在视觉任务中取得了巨大的成功&#xff0c;但传统视觉算法依然具有不可替代的地位。传统视觉算法通常基于数学模型和手工设计的特征&#xff0c;具有计算效率高、…

第四十二章 Vue中使用mutations修改Vuex仓库数据

目录 一、mutations修改仓库数据 1.1. 概述 1.2. mutations修改数据基本步骤 1.3. 完整代码 1.3.1. main.js 1.3.2. App.vue 1.3.3. index.js 1.3.4. Son1.vue 1.3.5. Son2.vue 二、mutations传参语法 2.1. mutations传参基本步骤 2.2. 完整代码 2.2.1. index.js …

六通道CAN集线器

六通道CAN集线器 --SG-CanHub-600 功能概述 SG_CanHub_600是一款具有六路通道的工业级智能 CAN数字隔离中继集线器。 SG_CanHub_600能够实现信号再生、延长通信距离、提高总线负载能力、匹配不同速 率 CAN网络&#xff0c;同时强大的 ID过滤功能可以极大降低 CAN总线负荷&a…

学校服务器连接pycharm配置2

上一个可能还是有点问题&#xff0c;因为实际在跑的时候读取的其实是本地的anaconda&#xff0c;这个重新整了一下流程 首先在学校服务器先激活自己创建的虚拟环境&#xff0c;这里就不截图了 然后在pycharm里面打开设置 选择这个python解释器 这里有添加解释器 选择SSH …

LeetCode面试经典150题|228.汇总区间

给定一个 无重复元素 的 有序 整数数组 nums 。 返回 恰好覆盖数组中所有数字 的 最小有序 区间范围列表 。也就是说&#xff0c;nums 的每个元素都恰好被某个区间范围所覆盖&#xff0c;并且不存在属于某个范围但不属于 nums 的数字 x 。 列表中的每个区间范围 [a,b] 应该按…

excel-VLOOKUP函数使用/XVLOOKUP使用

多个窗口同时编辑表格&#xff0c;方便对照操作 使用开始-视图-新建窗口 将战区信息表的三列数据匹配到成交数据表上 可以使用VLOOKUP函数 有4个参数&#xff08;必须要查找的值&#xff0c; 要查找的区域&#xff0c;要返回区域的第几列数据&#xff0c;一个可选参数查找匹…

kafka和Flume的整合

目录 一、Kafka作为Source 【数据进入到kafka中&#xff0c;抽取出来】 1、在我的flume的conf文件夹下&#xff0c;有个myconf文件夹&#xff1a; 2、 创建一个flume脚本文件&#xff1a; kafka-memory-logger.conf 3、测试 二、kafka作为Sink 【数据从别的地方抽取到kafka里…

Jmeter基础篇(22)服务器性能监测工具Nmon的使用

一、前言 我们在日常做压测的过程中&#xff0c;不仅仅需要监控TPS&#xff0c;响应时间&#xff0c;报错率等这些系统基础性能数据&#xff0c;还需要对服务器的性能&#xff08;如CPU、磁盘、内存、网络IO等&#xff09;做监控&#xff0c;以求对系统运行过程中的硬件性能有…

【c++笔试强训】(第六篇)

目录 单词搜索&#xff08;搜索&#xff09; 题目解析 讲解算法原理 编写代码 杨辉三⻆&#xff08;动态规划&#xff09; 题目解析 讲解算法原理 编写代码 单词搜索&#xff08;搜索&#xff09; 题目解析 1.题目链接&#xff1a;单词搜索_牛客题霸_牛客网 2.题目描…

【含开题报告+文档+PPT+源码】基于SpringBoot的奶茶点单系统

开题报告 随着社会经济的发展和人们对生活质量的需求提升&#xff0c;奶茶行业迅速崛起&#xff0c;并成为人们生活不可或缺的一部分。消费者在奶茶店点单通常需要排队等候、填写纸质订单&#xff0c;给消费者和奶茶店带来了一定的不便。因此&#xff0c;设计和实现一个基于 S…

【Android、IOS、Flutter、鸿蒙、ReactNative 】约束布局

Android XML 约束布局 参考 TextView居中 TextView 垂直居中并且靠右 TextView 宽高设置百分比 宽和高的比例 app:layout_constraintDimensionRatio"h,2:1" 表示子视图的宽高比为2:1&#xff0c;其中 h表示保持宽度不变&#xff0c;高度自动调整。 最大宽度 设…

Android 下内联汇编,Android Studio 汇编开发

版权归作者所有&#xff0c;如有转发&#xff0c;请注明文章出处&#xff1a;https://cyrus-studio.github.io/blog/ 内联汇编 Android 内联汇编非常适用于 ARM 架构的性能优化和底层操作&#xff0c;通常用于加密、解密、特定指令优化等领域。 1. 基础语法 内联汇编在 C/C …

安装宝塔 Windows 面板

操作场景 宝塔面板是一款使用很方便、功能强大、交互友好且终身免费的服务器管理软件&#xff0c;支持 Linux 与 Windows 系统。在宝塔面板中&#xff0c;您可以一键配置 LAMP、LNMP、网站、数据库、FTP、SSL&#xff0c;还可以通过 Web 端轻松管理服务器。 本文介绍如何在 W…

Ubuntu 的 ROS 操作系统 turtlebot3 gazebo仿真

引言 TurtleBot3 Gazebo仿真环境是一个非常强大的工具&#xff0c;能够帮助开发者在虚拟环境中测试和验证机器人算法。 Gazebo是一个开源的3D机器人仿真平台&#xff0c;它能支持物理引擎&#xff0c;允许机器人在虚拟环境中模拟和测试。结合ROS&#xff0c;它能提供一个完整的…

「IDE」集成开发环境专栏目录大纲

✨博客主页何曾参静谧的博客&#x1f4cc;文章专栏「IDE」集成开发环境&#x1f4da;全部专栏「Win」Windows程序设计「IDE」集成开发环境「UG/NX」BlockUI集合「C/C」C/C程序设计「DSA」数据结构与算法「UG/NX」NX二次开发「QT」QT5程序设计「File」数据文件格式「UG/NX」NX定…

Lucene 和 Elasticsearch 中更好的二进制量化 (BBQ)

作者&#xff1a;来自 Elastic Benjamin Trent Lucene 和 Elasticsearch 中更好的二进制量化 (BBQ)。 嵌入模型输出 float32 向量&#xff0c;通常对于高效处理和实际应用来说太大。Elasticsearch 支持 int8 标量量化&#xff0c;以减小向量大小&#xff0c;同时保持性能。其他…

Odoo:免费开源的钢铁冶金行业ERP管理系统

文 / 开源智造 Odoo亚太金牌服务 简介 Odoo免费开源ERP集成计质量设备大宗原料采购&#xff0c;备件设材全生命周期&#xff0c;多业务模式货控销售&#xff0c;全要素追溯单品&#xff0c;无人值守计量物流&#xff0c;大宗贸易交易和精细化成本管理等方案&#xff1b;覆盖…