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

每日5题Day3 - LeetCode 11 - 15

每一步向前都是向自己的梦想更近一步,坚持不懈,勇往直前!

第一题:11. 盛最多水的容器 - 力扣(LeetCode)

class Solution {public int maxArea(int[] height) {//这道题比较特殊,因为两边是任意选的,//所以中间可以出现比两边高的情况,实际就是双指针求一个矩形的面积//宽度为左右边界的差值,高度为左右高度的较小值,所以我们进行模拟int l = 0, r = height.length - 1, maxres = 0;while(l < r){if(maxres < (r - l) * Math.min(height[l], height[r])){maxres = (r - l) * Math.min(height[l], height[r]);}//不断挪动边界,因为宽度是在不断缩小的,那么如果我们挪动较高的那边,//得到的结果一定比以前小,所以挪动较低的那一边if(height[l] <= height[r]){l++;}else{r--;}}return maxres;}
}

第二题:12. 整数转罗马数字 - 力扣(LeetCode)

class Solution {// 数值对应的罗马数字int[] values = {1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1};// 罗马数字String[] symbols = {"M", "CM", "D", "CD", "C", "XC", "L", "XL", "X", "IX", "V", "IV", "I"};// 将整数转换为罗马数字public String intToRoman(int num) {StringBuilder sb = new StringBuilder();// 遍历数值对应的数组for (int i = 0; i < values.length; ++i) {int value = values[i];String symbol = symbols[i];// 当 num 大于等于当前数值时,循环减去该数值,并将对应的罗马数字追加到结果中while (num >= value) {num -= value;sb.append(symbol);}// 如果 num 等于 0,表示已经转换完成,直接跳出循环if (num == 0) {break;}}// 返回转换后的罗马数字字符串return sb.toString();}
}

第三题:13. 罗马数字转整数 - 力扣(LeetCode)

class Solution {// 将罗马数字转换为整数public int romanToInt(String s) {int res = 0; // 结果变量,用于存储转换后的整数值int preNum = getValue(s.charAt(0)); // 前一个罗马数字对应的整数值// 遍历字符串 s 中的每个字符for(int i = 1; i < s.length(); i++){int num = getValue(s.charAt(i)); // 当前字符对应的整数值// 如果前一个字符对应的整数值小于当前字符对应的整数值,则将结果减去前一个字符对应的整数值if(preNum < num){res -= preNum;}else{ // 否则,将结果加上前一个字符对应的整数值res += preNum;}preNum = num; // 更新前一个字符对应的整数值为当前字符对应的整数值}res += preNum; // 加上最后一个字符对应的整数值return res; // 返回最终的整数值}// 获取字符对应的整数值private int getValue(char ch){switch(ch) {case 'I' : return 1;case 'V' : return 5;case 'X': return 10;case 'L': return 50;case 'C': return 100;case 'D': return 500;case 'M': return 1000;default: return 0;}}
}

第四题:14. 最长公共前缀 - 力扣(LeetCode)

import java.util.Arrays;
import java.util.Comparator;class Solution {// 寻找字符串数组中的最长公共前缀public String longestCommonPrefix(String[] strs) {// 根据字符串长度对数组进行排序Arrays.sort(strs, new Comparator<String>(){@Overridepublic int compare(String o1, String o2){return o1.length() - o2.length();}});// 获取最短字符串的长度int maxlen = strs[0].length();int res = 0, index = 0; // res: 公共前缀长度,index: 当前比较的字符索引// 遍历最短字符串的长度while(index < maxlen){char tmpch = '.'; // 临时变量,用于存储当前比较的字符,默认为'.'表示未初始化// 遍历字符串数组中的每个字符串for(String st : strs){// 如果临时字符是'.',则将当前字符作为临时字符if(tmpch == '.'){tmpch = st.charAt(index);}// 否则,如果当前字符与临时字符不相等,则返回公共前缀(如果 res 不为 0),否则返回空字符串else{if(st.charAt(index) != tmpch){return res != 0 ? strs[0].substring(0, res) : "";}}}index++; // 移动到下一个字符位置res++; // 更新公共前缀长度}// 返回最长公共前缀return strs[0].substring(0, res);}
}

 第五题:15. 三数之和 - 力扣(LeetCode)

class Solution {// 定义一个方法threeSum,接收一个整数数组nums作为参数,返回所有和为0的三元组public List<List<Integer>> threeSum(int[] nums) {// 初始化结果列表List<List<Integer>> res = new ArrayList<>();// 对数组进行排序,以便于后续的双指针操作Arrays.sort(nums);// 遍历数组,使用i作为第一个数字for(int i = 0; i < nums.length - 2; i++) {// 跳过相同的元素,避免重复的三元组if(i > 0 && nums[i] == nums[i - 1]) {continue;}// 初始化左右指针int j = i + 1, k = nums.length - 1;// 使用while循环进行双指针操作,寻找和为0的三元组while(j < k) {// 计算当前三元组的和int cursum = nums[i] + nums[j] + nums[k];// 如果当前和小于0,说明需要增大和,因此移动左指针jif(cursum < 0) {j++;} else if(cursum > 0) {// 如果当前和大于0,说明需要减小和,因此移动右指针kk--;} else {// 如果当前和为0,找到了一个三元组res.add(Arrays.asList(nums[i], nums[j], nums[k]));// 跳过相同的元素,避免重复的三元组while(j < k && nums[j] == nums[j + 1]) {j++;}while(j < k && nums[k] == nums[k - 1]) {k--;}// 移动指针继续寻找下一个可能的三元组j++;k--;}}}// 返回所有找到的三元组return res;}
}

相关文章:

每日5题Day3 - LeetCode 11 - 15

每一步向前都是向自己的梦想更近一步&#xff0c;坚持不懈&#xff0c;勇往直前&#xff01; 第一题&#xff1a;11. 盛最多水的容器 - 力扣&#xff08;LeetCode&#xff09; class Solution {public int maxArea(int[] height) {//这道题比较特殊&#xff0c;因为两边是任意…...

路由器、交换机和网卡

大家使用VMware安装镜像之后&#xff0c;是不是都会考虑虚拟机的镜像系统怎么连上网的&#xff0c;它的连接方式是什么&#xff0c;它ip是什么&#xff1f; 路由器、交换机和网卡 1.路由器 一般有几个功能&#xff0c;第一个是网关、第二个是扩展有线网络端口、第三个是WiFi功…...

腾讯开源混元DiT文生图模型,消费级单卡可推理

节前&#xff0c;我们组织了一场算法岗技术&面试讨论会&#xff0c;邀请了一些互联网大厂朋友、今年参加社招和校招面试的同学。 针对大模型技术趋势、大模型落地项目经验分享、新手如何入门算法岗、该如何准备面试攻略、面试常考点等热门话题进行了深入的讨论。 总结链接…...

shell脚本基础(if/else结构)

命令是双向选择语句&#xff0c;当用户执行脚本时如果不满足if后的表达式也会执行else后的命令&#xff0c;所以有很好的交互性。其结构为&#xff1a; if expression1 then command … command else command … command fi vim ifelse_exam.sh #ifelse_exam.sh #!/bin/bashec…...

万字长文破解 AI 图片生成算法-Stable diffusion (第一篇)

想象一下&#xff1a;你闭上眼睛&#xff0c;脑海中构思一个场景&#xff0c;用简短的语言描述出来&#xff0c;然后“啪”的一声&#xff0c;一张栩栩如生的图片就出现在你眼前。这不再是科幻小说里才有的情节&#xff0c;而是Stable Diffusion——一种前沿的AI图片生成算法—…...

Linux---编辑器vim的认识与简单配置

前言 我们在自己的电脑上所用的编译软件&#xff0c;就拿vs2022来说&#xff0c;我们可以在上面写C/C语言、python、甚至java也可以在上面进行编译&#xff0c;这种既可以用来编辑、运行编译&#xff0c;又可以支持很多种语言的编译器是一种集成式开发环境&#xff0c;集众多于…...

lucene中Collector类、CollectorManager类区分和用法

我的lucene版本是9.10.0&#xff0c;请说明Collector类、CollectorManager类区分和用法&#xff0c;尽量详细点 在 Lucene 9.10.0 中&#xff0c;Collector 类和 CollectorManager 类都是用于搜索结果的收集和处理 Collector 类 Collector 类是一个接口&#xff0c;用于收集…...

Android之给Button上添加按压效果

一、配置stateListAnimator参数实现按压效果 1、按钮控件 <Buttonandroid:id"id/mBtnLogin"android:layout_width"match_parent"android:layout_height"48dp"android:background"drawable/shape_jfrb_login_button"android:state…...

python EEL + vue3.js 项目中如何把组件中的函数提升为全局函数

eel官方示例中暴露的js函数是全局函数&#xff0c;vue中的自定义函数作用域通常都是组件范围内。要让eel.js调用&#xff0c;需要将其升为全局可用。 一般方法有 app.config.globalProperties 或 mixin等。 main.js //main.jsimport { createApp } from vue import App from…...

sqli-labs靶场第十四关

目录 1&#xff1a;分析 找闭合符&#xff1a; 2&#xff1a;开始注入 报错注入&#xff1a; 注入数据库名&#xff1a; 注入表名&#xff1a; 注入列名&#xff1a; 注入具体值&#xff1a; 1&#xff1a;分析 经过我们的实验发现当我们输入的密码后面存在双引号时会报…...

【C语言】6.C语言VS实用调试技巧(1)

文章目录 1.什么是 bug2.什么是调试&#xff08;debug&#xff09;&#xff1f;3.Debug 和 Release4.VS调试快捷键4.1 环境准备4.2 调试快捷键 5.监视和内存观察5.1 监视5.2 内存 1.什么是 bug bug现在一般是指在电脑系统或程序中&#xff0c;隐藏着的一些未被发现的缺陷或问题…...

AIGC行业现在适合进入吗

人工智能、物联网、基因编辑和量子计算等新兴技术领域正在以前所未有的速度发展&#xff0c;这些技术的结合正在重塑我们的世界。在这个充满机遇和挑战的时代&#xff0c;AIGC&#xff08;人工智能、基因编辑和量子计算&#xff09;行业备受关注&#xff0c;许多人都在考虑是否…...

ubuntu CUDA 驱动更新,版本更新,多CUDA版本管理

1 新版本驱动下载 前面介绍过window CUDA驱动更新&#xff0c;但是对于ubuntu 的驱动更新&#xff0c;没有一键操作。 本人笔记本电脑n年前装的CUDA DRIVER仅支持到cuda10.2&#xff0c;实在无法满足这日新月异的科技更新。 左 旧的驱动版本 右 新下载的硬件支持的驱动版本&…...

effective python学习笔记_类与接口

用组合类实现多层结构而不用内置类型 例子&#xff1a;成绩单&#xff0c;存储学生各科成绩多个然后加权重&#xff0c;如果用字典类型会导致字典有多层嵌套结构 思想 当用内置类型如字典元组等结构出现超过二层的多层嵌套结构时&#xff0c;读起来会比较难懂&#xff0c;此时…...

如何去除字符串两侧的空白字符?

TRIM函数会去掉字符串左侧和右侧的空格&#xff0c;语法是&#xff1a;TRIM(字符串) excel中&#xff0c;TRIM函数能去掉字符串左侧和右侧的空格&#xff0c;它的ASCII码是32。 以下设定一个字符串组合&#xff0c;它的第一个字符中空格&#xff0c;最后一个字符是换行符 &q…...

Flutter 中的 PageStorage 小部件:全面指南

Flutter 中的 PageStorage 小部件&#xff1a;全面指南 在Flutter中&#xff0c;PageStorage小部件提供了一种方法来保存和恢复页面间的信息&#xff0c;这对于具有多个页面且需要在这些页面之间共享状态的应用程序非常有用。本文将详细介绍PageStorage的用途、如何使用它以及…...

头歌实践教学平台:CG1-v2.0-直线绘制

第1关&#xff1a;直线光栅化-DDA画线算法 一.任务描述 1.本关任务 (1)根据直线DDA算法补全line函数&#xff0c;其中直线斜率0<k<1&#xff1b; (2)当直线方程恰好经过P(x,y)和T(x,y1)的中点M时&#xff0c;统一选取直线上方的T点为显示的像素点。 2.输入 (1)直线两…...

Nacos+GateWay 搭建微服务架构

文章目录 1.当前项目架构分析1.请求多个模块的方式1.请求renren-fast模块开发环境生产环境 2.请求sunliving-commodity模块1.使用环境变量资源路径的方式2.开发环境 dev.env.js3.生产环境 prod.env.js 3.文件上传请求 sunliving-service模块1.请求后端接口&#xff08;开发环境…...

【2024华为HCIP831 | 高级网络工程师之路】刷题日记(18)

个人名片&#xff1a;&#x1faaa; &#x1f43c;作者简介&#xff1a;一名大三在校生&#xff0c;喜欢AI编程&#x1f38b; &#x1f43b;‍❄️个人主页&#x1f947;&#xff1a;落798. &#x1f43c;个人WeChat&#xff1a;hmmwx53 &#x1f54a;️系列专栏&#xff1a;&a…...

在抖音做电商,没有货源,不懂直播怎么办?分享一种解决方案!

大家好&#xff0c;我是电商糖果 糖果做电商的时间也挺久了&#xff0c;天猫&#xff0c;京东&#xff0c;闲鱼都搞过。 从学校进入社会工作&#xff0c;创业&#xff0c;一直都是围绕电商打转。 做的时间久了&#xff0c;好像只会做这一件事儿了。 2020年开始专攻抖音小店&…...

DeepSeek 赋能智慧能源:微电网优化调度的智能革新路径

目录 一、智慧能源微电网优化调度概述1.1 智慧能源微电网概念1.2 优化调度的重要性1.3 目前面临的挑战 二、DeepSeek 技术探秘2.1 DeepSeek 技术原理2.2 DeepSeek 独特优势2.3 DeepSeek 在 AI 领域地位 三、DeepSeek 在微电网优化调度中的应用剖析3.1 数据处理与分析3.2 预测与…...

循环冗余码校验CRC码 算法步骤+详细实例计算

通信过程&#xff1a;&#xff08;白话解释&#xff09; 我们将原始待发送的消息称为 M M M&#xff0c;依据发送接收消息双方约定的生成多项式 G ( x ) G(x) G(x)&#xff08;意思就是 G &#xff08; x ) G&#xff08;x) G&#xff08;x) 是已知的&#xff09;&#xff0…...

python/java环境配置

环境变量放一起 python&#xff1a; 1.首先下载Python Python下载地址&#xff1a;Download Python | Python.org downloads ---windows -- 64 2.安装Python 下面两个&#xff0c;然后自定义&#xff0c;全选 可以把前4个选上 3.环境配置 1&#xff09;搜高级系统设置 2…...

鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个医院挂号小程序

一、开发准备 ​​环境搭建​​&#xff1a; 安装DevEco Studio 3.0或更高版本配置HarmonyOS SDK申请开发者账号 ​​项目创建​​&#xff1a; File > New > Create Project > Application (选择"Empty Ability") 二、核心功能实现 1. 医院科室展示 /…...

k8s业务程序联调工具-KtConnect

概述 原理 工具作用是建立了一个从本地到集群的单向VPN&#xff0c;根据VPN原理&#xff0c;打通两个内网必然需要借助一个公共中继节点&#xff0c;ktconnect工具巧妙的利用k8s原生的portforward能力&#xff0c;简化了建立连接的过程&#xff0c;apiserver间接起到了中继节…...

vue3+vite项目中使用.env文件环境变量方法

vue3vite项目中使用.env文件环境变量方法 .env文件作用命名规则常用的配置项示例使用方法注意事项在vite.config.js文件中读取环境变量方法 .env文件作用 .env 文件用于定义环境变量&#xff0c;这些变量可以在项目中通过 import.meta.env 进行访问。Vite 会自动加载这些环境变…...

基于matlab策略迭代和值迭代法的动态规划

经典的基于策略迭代和值迭代法的动态规划matlab代码&#xff0c;实现机器人的最优运输 Dynamic-Programming-master/Environment.pdf , 104724 Dynamic-Programming-master/README.md , 506 Dynamic-Programming-master/generalizedPolicyIteration.m , 1970 Dynamic-Programm…...

html css js网页制作成品——HTML+CSS榴莲商城网页设计(4页)附源码

目录 一、&#x1f468;‍&#x1f393;网站题目 二、✍️网站描述 三、&#x1f4da;网站介绍 四、&#x1f310;网站效果 五、&#x1fa93; 代码实现 &#x1f9f1;HTML 六、&#x1f947; 如何让学习不再盲目 七、&#x1f381;更多干货 一、&#x1f468;‍&#x1f…...

Mysql中select查询语句的执行过程

目录 1、介绍 1.1、组件介绍 1.2、Sql执行顺序 2、执行流程 2.1. 连接与认证 2.2. 查询缓存 2.3. 语法解析&#xff08;Parser&#xff09; 2.4、执行sql 1. 预处理&#xff08;Preprocessor&#xff09; 2. 查询优化器&#xff08;Optimizer&#xff09; 3. 执行器…...

Scrapy-Redis分布式爬虫架构的可扩展性与容错性增强:基于微服务与容器化的解决方案

在大数据时代&#xff0c;海量数据的采集与处理成为企业和研究机构获取信息的关键环节。Scrapy-Redis作为一种经典的分布式爬虫架构&#xff0c;在处理大规模数据抓取任务时展现出强大的能力。然而&#xff0c;随着业务规模的不断扩大和数据抓取需求的日益复杂&#xff0c;传统…...