LeetCode 每日一题 2023/12/18-2023/12/24

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


目录

      • 12/18 162. 寻找峰值
      • 12/19 1901. 寻找峰值 II
      • 12/20 2828. 判别首字母缩略词
      • 12/21 2866. 美丽塔 II
      • 12/22 1671. 得到山形数组的最少删除次数
      • 12/23 1962. 移除石子使总数最小
      • 12/24


12/18 162. 寻找峰值

二分
因为边界为负无穷
只要往高坡移动 必定能找到峰值

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

12/19 1901. 寻找峰值 II

按每一行来二分 对于某一行i来说 取其中最大值mat[i][j]
判断该最大值与上下相邻值的关系
如果都大于邻值 说明该位置为峰顶
如果存在大的邻值 说明该方向存在峰顶

def findPeakGrid(mat):""":type mat: List[List[int]]:rtype: List[int]"""l,r = 0,len(mat)-2while l<=r:mid = (l+r)>>1mx = max(mat[mid])j = mat[mid].index(mx)if mx>mat[mid+1][j]:r = mid-1else:l = mid+1i = lreturn [i,mat[i].index(max(mat[i]))]

12/20 2828. 判别首字母缩略词

依次判断

def isAcronym(words, s):""":type words: List[str]:type s: str:rtype: bool"""n = len(words)if n!=len(s):return Falsefor i in range(n):if words[i][0]!=s[i]:return Falsereturn True

12/21 2866. 美丽塔 II

以i为山顶
计算0~i能够得到的最大和left[i]
计算i~n能够得到的最大和right[i]
left[i]+right[i+1]就是最大和
单调栈来统计

def maximumSumOfHeights(maxHeights):""":type maxHeights: List[int]:rtype: int"""n=len(maxHeights)right = [0]*(n+1)st = [n]s = 0for i in range(n-1,-1,-1):v = maxHeights[i]while len(st)>1 and v<=maxHeights[st[-1]]:j = st.pop()s -= maxHeights[j]*(st[-1]-j)s+=v*(st[-1]-i)right[i]=sst.append(i)ans = sst=[-1]l = 0for i,v in enumerate(maxHeights):while len(st)>1 and v<=maxHeights[st[-1]]:j = st.pop()l -= maxHeights[j]*(j-st[-1])l+=v*(i-st[-1])ans = max(ans,l+right[i+1])st.append(i)return ans

12/22 1671. 得到山形数组的最少删除次数

左侧到山顶是递增 山顶到右侧是递减
只考虑一边 即求递增子序列
另一边倒序后 同样求递增子序列

def minimumMountainRemovals(nums):""":type nums: List[int]:rtype: int"""n = len(nums)def getLIS(nums):dp=[1]*nfor i in range(n):for j in range(i):if nums[j]<nums[i]:dp[i] = max(dp[i],dp[j]+1)return dpleft = getLIS(nums)right = getLIS(nums[::-1])[::-1]ans = 0for i,j in zip(left,right):if i>1 and j>1:ans = max(ans,i+j-1)return n-ans

12/23 1962. 移除石子使总数最小

大顶堆 每次取最大一堆石子进行操作

def minStoneSum(piles, k):""":type piles: List[int]:type k: int:rtype: int"""import heapqs = sum(piles)l = [-x for x in piles]heapq.heapify(l)while k>0:v = -heapq.heappop(l)s -= v//2v -= v//2heapq.heappush(l,-v)k-=1return s

12/24


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

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

相关文章

python调用DALL·E绘画

实现用gpt的api和他对话后&#xff0c;我们试着调用DALLE的api进行绘画 参考文档 OpenAI API 运行代码 from openai import OpenAIclient OpenAI()user_prompt input("请输入您想生成的图片描述: ")response client.images.generate(model"dall-e-3"…

计算机网络 网络安全技术

网络安全基本要素 机密性 不泄密完整性 信息不会被破坏可用性 授权用户 正常有效使用可控性 被控制可审查性 网络安全的结构层次 物理安全 物理介质安全控制 计算机操作系统安全服务 应用层次 被动攻击 :截获信息 主动攻击 : 中断信息,篡改,伪造 篡改 …

分享70个Java源码总有一个是你想要的

分享70个Java源码总有一个是你想要的 学习知识费力气&#xff0c;收集整理更不易。 知识付费甚欢喜&#xff0c;为咱码农谋福利。 源码下载链接&#xff1a;https://pan.baidu.com/s/1uyWfeUuO_4jRbAEw825qRw?pwd6666 提取码&#xff1a;6666 项目名称 CRUD is ReallyU…

电商数据之巅:挖掘无限价值的蓝海

在数字时代的大潮中&#xff0c;数据已成为新的黄金和石油&#xff0c;尤其在电商领域。电商平台每天都在产生海量的数据&#xff0c;这些数据不仅是对消费者行为的记录&#xff0c;更是隐藏着无限的商机和价值。本文将带你走进电商数据的神奇世界&#xff0c;探寻其无尽可能的…

Go 泛型发展史与基本介绍

Go 泛型发展史与基本介绍 Go 1.18版本增加了对泛型的支持&#xff0c;泛型也是自 Go 语言开源以来所做的最大改变。 文章目录 Go 泛型发展史与基本介绍一、为什么要加入泛型&#xff1f;二、什么是泛型三、泛型的来源四、为什么需要泛型五、Go 泛型设计的简史六、泛型语法6.1 …

实战篇:一文讲清楚商品分析之返货品画像分析怎么做

01 什么是商品画像&#xff0c;怎样进行分析 “用户画像对于小伙伴们来说并不陌生&#xff0c;那有小伙伴知道商品画像吗&#xff1f;其实它和用户画像一样&#xff0c;可以简单理解成是商品海量数据的标签。”   商品画像的意义在于可以对商品进行精准的定位&#xff0c;让不…

探索人工智能 | 计算机视觉 让计算机打开新灵之窗

前言 计算机视觉是一门研究如何使机器“看”的科学&#xff0c;更进一步的说&#xff0c;就是指用摄影机和电脑代替人眼对目标进行识别、跟踪和测量等机器视觉&#xff0c;并进一步做图形处理&#xff0c;使电脑处理成为更适合人眼观察或传送给仪器检测的图像。 文章目录 前言…

重生奇迹mu翅膀合成

在重生奇迹mu中&#xff0c;合成翅膀需要准备好翅膀碎片、宝石、羽毛、强化精华等材料&#xff0c;而其中不同翅膀合成要求的材料和数量略有不同。以下是一般合成翅膀的步骤&#xff1a; 1.首先&#xff0c;需要在背包中准备好所有的合成材料。如果缺少任何一种材料&#xff0…

Node.js安装部署

Node.js安装部署 在 Windows 上安装 Node.js1.使用安装程序2.使用包管理器 Chocolatey 安装 在 macOS 上安装 Node.js1.使用 Homebrew 安装 在 Linux 上安装 Node.js1.使用包管理器安装2.使用 Node.js 官方二进制包 安装完成验证 Node.js 是一个基于 Chrome V8 引擎的 JavaScri…

实验一传统的结构化的软件工程方法、实验二面向对象的软件工程、实验三软件测试

背景&#xff1a; 实验一 传统的结构化的软件工程方法 1实验目的 了解传统的软件工程方法的基本原理&#xff0c;掌握软件生命周期的全过程依次划分为需求分析、总体设计、详细设计、编码、测试、维护等几个重要阶段。每个阶段所要完成的任务以及提交的文档。 2实验内容 …

【LeetCode:2828. 判别首字母缩略词 | 模拟遍历】

&#x1f680; 算法题 &#x1f680; &#x1f332; 算法刷题专栏 | 面试必备算法 | 面试高频算法 &#x1f340; &#x1f332; 越难的东西,越要努力坚持&#xff0c;因为它具有很高的价值&#xff0c;算法就是这样✨ &#x1f332; 作者简介&#xff1a;硕风和炜&#xff0c;…

腾讯云服务器root登录(轻量应用服务器)

Ubuntu 系统如何使用 root 用户登录实例&#xff1f; Ubuntu 系统的默认用户名是 ubuntu&#xff0c;并在安装过程中默认不设置 root 账户和密码。您如有需要&#xff0c;可在设置中开启允许 root 用户登录。具体操作步骤如下&#xff1a; 1. 使用 ubuntu 账户登录轻量应用服…

SpringMVC之处理响应

系列文章目录 提示&#xff1a;这里可以添加系列文章的所有文章的目录&#xff0c;目录需要自己手动添加 SpringMVC之处理响应 提示&#xff1a;写完文章后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 系列文章目录前言一、配置视图解析器…

基于Java+SpringBoot+vue+element疫情物资捐赠分配系统设计和实现

基于JavaSpringBootvueelement疫情物资捐赠分配系统设计和实现 &#x1f345; 作者主页 系统定制开发 &#x1f345; 欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1f4dd; &#x1f345; 文末获取源码联系方式 &#x1f4dd; 文章目录 基于JavaSpringBootvueelement疫情物资捐赠…

Blazor 混合开发_MAUI+Vue_WPF+Vue

MAUI&#xff0b;Vue 混合开发 背景混合开发的核心为什么必须使用 wwwroot 文件夹放置 Web 项目文件 创建 MAUI 项目创建 wwwroot 文件夹服务注册创建 _import.razor添加 Main.razor 组件修改 MainPage.xaml 文件 创建 WPF 项目创建 wwwroot 文件夹服务注册创建 _import.razor添…

【算法设计与分析】——动态规划算法

&#x1f383;个人专栏&#xff1a; &#x1f42c; 算法设计与分析&#xff1a;算法设计与分析_IT闫的博客-CSDN博客 &#x1f433;Java基础&#xff1a;Java基础_IT闫的博客-CSDN博客 &#x1f40b;c语言&#xff1a;c语言_IT闫的博客-CSDN博客 &#x1f41f;MySQL&#xff1a…

mybatisPlus 常见用法

文章目录 mybatisPlus 常见用法一、自动填充1.1 处理类1.2 自动填充抽象类 二、枚举1.1 注解方式1.2 实现接口方式 三、分页3.1 配置 config3.2 定义统一分页接口3.3 实现分页接口3.4 使用 四、读写分离4.1 方式一4.1.1 application.yml4.1.2 pom.xml 4.2 方式二4.2.1 applicat…

【ps】新手 学 PS一本通

第一章 添加图像边框 1. 导入一张图片 2.选择 图像-画布大小 例&#xff1a;原图&#xff1a;720x820 填写画布大小&#xff1a;820x920 可以增加一个100x100的边框。 画布扩展颜色是扩展的颜色。 标尺工具 视图>标尺 或者使用 CTRL R 网格工具 视图-显示-网格 …

Linus命令总结:

ps aux 查看当前运行的所有的进行 解压&#xff1a;unzip FileName.zip 压缩&#xff1a;zip FileName.zip DirName 各种压缩和解压缩命令https://blog.csdn.net/m0_61925586/article/details/127824778 开启一个名为test的终端&#xff1a; screen -S test ②查看所有的scr…

机器视觉系统选型-图像对比度

对于一个视觉系统来说&#xff0c;“黑白分明”的图像才是好图像。 选择适合的灯源&#xff0c; 使图像中待测特征反差最大化。