Leetcode刷题-(41~45)-Java
算法是码农的基本功,也是各个大厂必考察的重点,让我们一起坚持写题吧。
遇事不决,可问春风,春风不语,即是本心。
我们在我们能力范围内,做好我们该做的事,然后相信一切都事最好的安排就可以啦,慢慢来,会很快,向前走,别回头。
目录
1.缺失的第一个正数
2.接雨水
3.字符串相乘
4.通配符匹配
5.跳跃游戏II
1.缺失的第一个正数
题目链接:. - 力扣(LeetCode). - 备战技术面试?力扣提供海量技术面试资源,帮助你高效提升编程技能,轻松拿下世界 IT 名企 Dream Offer。
https://leetcode.cn/problems/first-missing-positive/description/
思路1:如果不考虑空间复杂度的情况下,用哈希表存入元素,然后从1开始枚举判断元素是否在哈希表中即可,时间复杂度和空间复杂度都是O(n) 。
思路2:通过修改数组本身模拟:先将小于0的数字都变换成n+1,接下来将小于等于n的元素索引替换成负数,然后🏪找出第一个大于0的数字即是结果。
Java版:
哈希表法:
class Solution {public int firstMissingPositive(int[] nums) {int n = nums.length ;Map<Integer, Integer> map = new HashMap<>() ;for(int i=0; i<n; i++){map.put(nums[i], i) ;}int j = 1 ;for(j=1;j<=n; j++){if(!map.keySet().contains(j)){return j ;}}return j ;}
}
方法2:模拟:先将小于等于0的都变为n+1,然后将小于等于n的都变为负数,最后找出第一个大于0的元素所对应的索引,若未找到则返回n+1。
class Solution {public int firstMissingPositive(int[] nums) {int n = nums.length ;for(int i=0; i<n; i++){if(nums[i] <= 0){nums[i] = n + 1 ;}}for(int i=0; i<n; i++){int num = Math.abs(nums[i]) ;if(num <= n){nums[num-1] = - Math.abs(nums[num-1]) ;}}for(int i=0; i<n; i++){if(nums[i] > 0){return i + 1 ;}}return n + 1 ;}
}
2.接雨水
题目链接:. - 力扣(LeetCode). - 备战技术面试?力扣提供海量技术面试资源,帮助你高效提升编程技能,轻松拿下世界 IT 名企 Dream Offer。
https://leetcode.cn/problems/trapping-rain-water/solutions/
思路:利用双指针模拟,计算可以接到的雨水,维护左右指针以及左右侧柱子高度的最值,由两侧向中间遍历,每次更新左侧或者右侧柱子高度的最值,并计算可以接水的情况。
时间复杂度O(n)、空间复杂度O(1)
Java版:
class Solution {public int trap(int[] height) {int left = 0, right = height.length - 1 ;int leftMax = 0, rightMax = 0 ;int ans = 0 ;while(left < right){leftMax = Math.max(leftMax, height[left]) ;rightMax = Math.max(rightMax, height[right]) ;if(height[left] < height[right]){ans += leftMax - height[left] ;left ++ ;}else{ans += rightMax - height[right] ;right -- ;}}return ans ;}
}
3.字符串相乘
题目链接:. - 力扣(LeetCode). - 备战技术面试?力扣提供海量技术面试资源,帮助你高效提升编程技能,轻松拿下世界 IT 名企 Dream Offer。
https://leetcode.cn/problems/multiply-strings/
思路1:直接用BigInteger进行大数的相乘,最后将乘积转换成字符串。
Java版:
import java.math.* ;
class Solution {public String multiply(String num1, String num2) {BigInteger b1 = new BigInteger(num1) ;BigInteger b2 = new BigInteger(num2) ;return b1.multiply(b2).toString() ;}
}
4.通配符匹配
题目链接:. - 力扣(LeetCode). - 备战技术面试?力扣提供海量技术面试资源,帮助你高效提升编程技能,轻松拿下世界 IT 名企 Dream Offer。
https://leetcode.cn/problems/wildcard-matching/description/
思路:动态规划的思想,dp[n][m]表示长度为n的字符串s与长度为m的字符串p是否能匹配成功,
需要初始化dp[0][j],然后根据递推式更新dp[i][j].
Java版:
class Solution {public boolean isMatch(String s, String p) {// dp[n][m]: 字符串s的前n字符与字符串p的前m个字符是否匹配int n = s.length(), m = p.length() ;boolean [][] dp = new boolean[n+1][m+1] ;// 初始化s为空与p是否能够匹配,空的s只能与p的*匹配dp[0][0] = true ;for(int j=1; j<=m; j++){if(p.charAt(j-1) == '*'){dp[0][j] = true ;}else{break;}}// 遍历更新dp数组for(int i=1; i<=n; i++){for(int j=1; j<=m; j++){if(p.charAt(j-1) == '*'){// 匹配任意字符或者空字符dp[i][j] = dp[i-1][j] || dp[i][j-1] ;}else if(p.charAt(j-1) == '?' || s.charAt(i-1) == p.charAt(j-1)){// 匹配一个字符dp[i][j] = dp[i-1][j-1] ;}}}return dp[n][m] ;}
}
5.跳跃游戏II
题目链接:. - 力扣(LeetCode). - 备战技术面试?力扣提供海量技术面试资源,帮助你高效提升编程技能,轻松拿下世界 IT 名企 Dream Offer。
https://leetcode.cn/problems/jump-game-ii/description/
思路:动态规划思想,dp[n]表示走到第n个位置所需要的最小步数。判断从第j位置是否可以走到i位置,如果可以则更新dp[i]的最小值。
Java版:
class Solution {public int jump(int[] nums) {int n = nums.length ;int [] dp = new int [n] ;dp[0] = 0 ;for(int i=1; i<n; i++){dp[i] = Integer.MAX_VALUE ;for(int j=0; j<i; j++){if(nums[j] >= i-j){dp[i] = Math.min(dp[j]+1, dp[i]) ;}}}return dp[n-1] ;}
}相关文章:
Leetcode刷题-(41~45)-Java
算法是码农的基本功,也是各个大厂必考察的重点,让我们一起坚持写题吧。 遇事不决,可问春风,春风不语,即是本心。 我们在我们能力范围内,做好我们该做的事,然后相信一切都事最好的安排就可以啦…...
【Android】源码解析Activity的结构分析
源码解析Activity的结构分析 目录 1、Activity、View、Window有什么关联?2、Activity的结构构建流程3 源码解析Activity的构成 3.1 Activity的Attach方法3.2 Activity的OnCreate 4、WindowManager与View的关系总结 1、一个Activity对应几个WindowManage࿰…...
小猪APP分发:重塑应用分发市场的创新力量
在移动互联网蓬勃发展的今天,应用分发平台作为连接开发者与用户的桥梁,扮演着至关重要的角色。然而,随着市场的饱和,如何在众多平台中脱颖而出,为开发者提供更宽广的舞台,同时确保用户能够便捷、安全地获取…...
区块链 | IPFS 工作原理入门
🦊原文:What is the InterPlanetary File System (IPFS), and how does it work? 🦊写在前面:本文属于搬运博客,自己留存学习。 1 去中心化互联网 尽管万维网是一个全球性的网络,但在数据存储方面&#…...
减速机齿数速算
1.齿轮相关参数 1.1 模数 , 因为 齿数*齿距 Pi*直径 所以:直径/齿数 齿距/PI 模数 国标现行标准(截止2024/5)是: GB/ 1357-2008 / ISO 54-1996 模数有国标的一个序列标准: 1.2.轴径 轴径的国标是&a…...
2万字长文:海豚调度器(DolphinScheduler)面试题深入了解
目录 海豚调度器的主要功能和特点 海豚调度器与Oozie、Azkaban等调度器相比的优势...
全双工音频对讲模块-支持空中升级、多级无线中继
SA618F30是一款高集成的大功率全双工无线音频模块,发射功率高达32dBm。该音频模块简化接口,只需外接音频功放或麦克风即可作为一个小型对讲机,方便快捷嵌入到各类手持设备中。支持多级无线中继,支持OTA空中升级。 SA618F30配备1W…...
Spring扩展点(二)Spring事务生命周期
Spring事务生命周期 Spring事务事务生命周期 接口 TransactionSynchronizationTransactionalEventListener(另一种监听事务周期的方式) Spring事务 Spring对JDBC事务做了封装,使其易于使用。主要分为声明式事务和编程式事务。 Transactiona…...
foobar2000 for Mac:卓越音乐播放器
当您在寻找一款音质卓越、功能丰富的音频播放器时,foobar2000 for Mac无疑是您的首选。它拥有简洁明了的界面设计,易于上手,同时支持多种音频格式,让您无需担心兼容性问题。 foobar2000 for Mac v2.6.4免激活版下载 foobar2000 fo…...
【自动驾驶|毫米波雷达】初识毫米波雷达射频前端硬件
第一次更新:2024/5/4 目录 整体概述 混频器(MIXER) 低通滤波器(LPF:Low-Pass filter) 数模转换器(ADC:Analog to Digital Converter) 毫米波雷达功能框图 整体概述 完…...
实战BACnet/IP标准通信网关在楼宇自动化中的应用
智慧楼宇建设实现不同设备间的互联互通是一项巨大挑战,尤其是在那些历史悠久的建筑中,新旧系统并存的情况尤为普遍。某大型商业综合体就面临着这样的困境:老旧的暖通空调系统采用Modbus RTU协议,而新部署的能源管理系统却要求BACn…...
设计模式的原则与分类
一、设计模式的原则 1、单一职责原则 一个类只需要负责一种职责即可,一个类发生变化的原因,必然是所负责的职责发生变化 2、接口隔离原则 单一职责原则是接口隔离原则的基础,单一职责原则注重职责的划分,从职责角度进行类和接口…...
在ubuntu虚拟机中手动安装VMware Tools(VMware Workstation 17 player)
可参考官方文档:在 Linux 虚拟机中手动安装 VMware Tools 以下列出我在安装过程中遇见的问题: 1、“安装VMware Tools”选项为灰,无法选中 原因是VMware Tools的安装包镜像在Player的安装目录下,需要在虚拟机启动的时候加载这个…...
十个数据安全最佳实践:保护数据的简单方法
在德迅云安全将介绍数据安全的主要原则,并了解适用于大多数行业的 10 种数据安全最佳实践,以及云端安全检测的重要性。 数据威胁和维护数据安全的好处 什么是数据安全? 数据安全是旨在保护组织敏感资产的流程和工具的组合。有价值的数据在…...
【leetcode】二分搜索题目总结
704. 二分查找 class Solution { public:int search(vector<int>& nums, int target) {int left 0, right nums.size() - 1;while (left < right) {int mid left (right - left) / 2;if (nums[mid] target) {return mid;} else if (nums[mid] < target) …...
六西格玛项目的核心要素:理论学习、实践应用与项目经验
许多朋友担心,没有项目经验是否就意味着无法考取六西格玛证书。针对这一疑问,张驰咨询为大家详细解答。 首先,需要明确的是,六西格玛项目不仅仅是一种管理工具或方法,更是一种追求卓越、持续改进的思维方式。它强调通…...
21-ESP32-S3实时时钟(RTC)
ESP32-S3实时时钟(RTC)的使用 ESP32-S3是一款高性能的Wi-Fi和蓝牙集成的系统级芯片(SoC),它包含一个实时时钟(RTC)模块,可以在系统的其他部分关闭时继续运行,以节省电能…...
17.接口自动化学习-日志
1.日志输出渠道 (1)文件格式 xx.log (2)控制台输出 2.日志级别 debug<info<warnning<error<critical 3.代码实现 from utils.handle_path import log_path import logging import datetime def logger(fileLogTr…...
python直接发布到网站wordpress之二发布图片
在我的上一篇文章中已经给出了python操作wordpress的环境和发布文字的教程: python直接发布到网站wordpress之一只发布文字-CSDN博客 本篇实现发布带图片的内容,无图无真相嘛。 直接上代码: from wordpress_xmlrpc.methods.media import …...
Messari 报告摘要 :Covalent Network(CQT)2024 年第一季度表现
摘要: 尽管 CQT 代币流通供应量增加了 20%(新增 1.04 亿枚 CQT),但 CQT 的质押百分比仅从 2023 年第一季度的 22% 增长到了 2024 年第一季度的 29%。 CQT 的市值季度环比增长了 28%,多次达到 2.75 亿美元,…...
Vision-Agents:构建下一代实时视觉AI代理的终极指南
Vision-Agents:构建下一代实时视觉AI代理的终极指南 【免费下载链接】Vision-Agents Open Vision Agents by Stream. Build Vision Agents quickly with any model or video provider. Uses Streams edge network for ultra-low latency. 项目地址: https://gitco…...
Qwen3-ASR-0.6B惊艳效果:藏语、维吾尔语等少数民族语言识别案例
Qwen3-ASR-0.6B惊艳效果:藏语、维吾尔语等少数民族语言识别案例 1. 引言:多语言语音识别的突破 语音识别技术正在改变我们与设备交互的方式,但有一个领域一直存在巨大挑战——少数民族语言的识别。传统的语音识别模型往往只支持主流语言&am…...
Simulink与Plecs联合仿真实现三相桥式电路能量双向流动
simulinkplecs联合仿真源件,三相桥式电路,采用母线电压外环与电流内环控制,可整流也可逆变并网,实现能量双向流动,采用SVPWM调制方式。 1.plecssimulink 2.SVPWM 3.双闭环 支持simulink2022以下版本,联系跟…...
OpenClaw日志分析进阶:百川2-13B-4bits量化模型自动错误诊断
OpenClaw日志分析进阶:百川2-13B-4bits量化模型自动错误诊断 1. 为什么需要自动化日志分析 深夜两点,我的手机突然震动起来——服务器又报警了。强撑着睡意打开终端,面对满屏的报错日志,那种无力感相信每个运维人都深有体会。传…...
C++ 模板与泛型编程入门
C 模板与泛型编程入门 模板把类型(及非类型参数)作为参数,在编译期由编译器按用法生成具体函数或类,是 C 泛型编程与 STL 的基础。下文以 Max、简单类模板、选择排序及可定制比较器为例说明常见写法;排序复杂度为 (O(…...
变压器绕组类型 | 高频变压器绕制要点
注:本文为 “变压器绕制” 相关合辑。 英文引文,机翻未校。 如有内容异常,请看原文。 图片清晰度受引文原图所限。 变压器绕组类型:圆筒式、螺旋式、交叉式与饼式绕组 Types of Transformer Windings: Cylindrical, Helical, Cro…...
OpenClaw日志分析:QwQ-32B任务执行效率监控
OpenClaw日志分析:QwQ-32B任务执行效率监控 1. 为什么需要监控OpenClaw任务执行效率 去年冬天,我部署了一个自动整理会议纪要的OpenClaw工作流。起初运行得很顺利,直到某天早上发现它漏掉了三场重要会议的记录。检查日志才发现,…...
CDN图片服务与动态参数优化
前言在现代Web应用中,图片已经不再是简单的静态资源,而是需要根据设备、网络、浏览器能力动态优化的核心内容。CDN图片服务提供了强大的动态处理能力,结合前端的智能参数拼接,可以实现图片加载的极致优化。一个典型的电商场景&…...
DFS经典例题(八皇后,数独)
1.1P1036 [NOIP 2002 普及组] 选数 解题思路 这里是组合思想与元素的排序无关,列举出所有符合的组合再判断是否符合素数 代码 #include<iostream> using namespace std; const int N 21; int a[N]; int path; int ret; int n, m;bool is(int path) {if (pa…...
项目管理工具怎么选?8款主流产品测评与选型建议
项目管理工具怎么选?真正需要比较的,不只是功能多少,而是它是否适合团队的协作方式、项目复杂度和管理阶段。本文围绕场景匹配、流程灵活性、信息沉淀、管理视图和落地成本,对8款主流项目管理工具做一轮顾问式测评。引言很多企业在…...
