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

leetcode究极刷题笔记(11~15)

(11)盛最多水的容器(中等)

实现思路:
定义两个指针(a,b),分别指向数组的前后位置,如果此时a的值小于b的话,就将a右移一位,如果此时b指向的值小于a的话,就将b向左边移动一位。

具体实现代码如下:

class Solution {
public:int maxArea(vector<int>& height) {int res=0;for(int i=0,j=height.size()-1;i<j;){res=max(res,min(height[i],height[j])*(j-i));if(height[i]<height[j]) i++;else j--;}return res;}};

(12)整数转化罗马数字(中等)

实现思路:
此题就是一个模拟实现,我们将对应的每一种特殊情况拿出来进行对比参照,将数字以此减少并加上对应的罗马数字即可解决本题

具体代码如下:

class Solution {
public:string intToRoman(int num) {int values[]={1000,900,500,400,100,90,50,40,10,9,5,4,1};string reps[]={"M","CM","D","CD","C","XC","L","XL","X","IX","V","IV","I"};string res;for(int i=0;i<=12;i++){while(num>=values[i]){num-=values[i];res+=reps[i];}}return res;}
};

(13)罗马数字转整数(简单)

实现思路:
与上题类似,具体看代码即可

代码实现如下:

class Solution {
public:int romanToInt(string s) {unordered_map<char,int> count;count['I']=1,count['V']=5;count['X']=10,count['L']=50;count['C']=100,count['D']=500;count['M']=1000;int res=0;for(int i=0;i<s.size();i++){if(i+1<s.size() && count[s[i]]<count[s[i+1]]){res-=count[s[i]];}else{res+=count[s[i]];}}return res;}
};

(14)最长公共前缀(简单)

实现思路:
本题实现比较简单,具体看代码即可。

代码实现如下:

class Solution {
public:string longestCommonPrefix(vector<string>& strs) {string res;if(strs.empty()) return res;for(int i=0;;i++){if(i>=strs[0].size()) return res;//对应的就是最后的结束条件char c=strs[0][i];for(auto& str:strs){if(str.size()<=i || str[i]!=c){return res;}}res+=c;}return res;}
};

(15)三数之和(中等)

实现思路:
主要的思路就是利用双指针算法,首先我们先排序,因为有序是双指针算法的必要条件,之后我们定义三个指针,确定其中一个i,然后让j与k进行遍历查找三者和为0的组合,如果此时i,j,k各自前后互相相同的话,直接跳过即可。

具体实现代码如下:

class Solution {
public:vector<vector<int>> threeSum(vector<int>& nums) {sort(nums.begin(),nums.end());vector<vector<int>> res;for(int i=0;i<nums.size();i++){if(i && nums[i]==nums[i-1])continue;//continue函数的意思就是下面的带啊吗不进行,但是整体的循环并未停止,相当于循环了一次但是不做任何事for(int j=i+1,k=nums.size()-1;j<k;j++){if(j>i+1 && nums[j]==nums[j-1]) continue;while(j<k-1 && nums[i]+nums[j]+nums[k-1]>=0) k--;if(nums[i]+nums[j]+nums[k]==0){res.push_back({nums[i],nums[j],nums[k]});}}}return res;}
};

希望以上文章对您有帮助!!!
 

相关文章:

leetcode究极刷题笔记(11~15)

&#xff08;11&#xff09;盛最多水的容器&#xff08;中等&#xff09; 实现思路&#xff1a; 定义两个指针&#xff08;a,b&#xff09;&#xff0c;分别指向数组的前后位置&#xff0c;如果此时a的值小于b的话&#xff0c;就将a右移一位&#xff0c;如果此时b指向的值小于…...

【C语言】一篇带你从零了解 枚举

文章目录什么是枚举枚举类型的定义枚举的优点枚举的使用什么是枚举 枚举是 C 语言中的一种基本数据类型 可以让数据更简洁&#xff0c;更易读。 枚举顾名思义就是 一 一 列举。 把可能的取值 一 一列举。 比如我们现实生活中&#xff1a; 一周的星期一到星期日是有限的7天&…...

用Pytorch搭建一个房价预测模型

本文参加新星计划人工智能(Pytorch)赛道&#xff1a;https://bbs.csdn.net/topics/613989052 目录 一、项目介绍 二、准备工作 三、实验过程 3.1数据预处理 3.2拆分数据集 3.3构建PyTorch模型 3.3.1.数据转换 3.3.2定义模型架构 3.3.3定义损失准则和优化器 3.3.4创建…...

《Netty》从零开始学netty源码(十五)之ServerSocketChannel

在NioServerSocketChannel中调用newChannel方法创建java原生的channel&#xff0c;过程如下&#xff1a; ServerSocketChannel是一个抽象类&#xff0c;WEPollSelectorProvider调用openServerSocketChannel方法创建的是它的实现类ServerSocketChannelImpl&#xff0c;类结构如下…...

Java stream性能比较

环境 Ubuntu 22.04IntelliJ IDEA 2022.1.3JDK 17CPU&#xff1a;8核 ➜ ~ cat /proc/cpuinfo | egrep -ie physical id|cpu cores physical id : 0 cpu cores : 1 physical id : 2 cpu cores : 1 physical id : 4 cpu cores : 1 physical id : 6 cpu cores : 1 physical id …...

【数据结构与算法】设计循环队列

文章目录&#x1f451;前言如何设计循环队列设计循环队列整体的代码&#x1f4ef;写在最后&#x1f451;前言 &#x1f6a9;前面我们 用队列实现了一个栈 &#xff0c;用栈实现了一个队列 &#xff0c;相信大家随随便便轻松拿捏&#xff0c;而本章将带大家上点难度&#xff0c;…...

最新版!国内IT软件外包公司汇总~

金三银四已经过去一半&#xff0c;再过几个月又将迎来毕业季&#xff0c;大家有没有找到心仪的工作机会呀&#xff1f;有很多同学说今年的金三银四似乎不存在了。小李&#xff1a;今年的金三银四变成了铜三铁四&#xff0c;不断地投递又不断地造拒。小王&#xff1a;大量已读不…...

MySQL的COUNT语句,竟然都能被面试官虐的这么惨!?

关于数据库中行数统计&#xff0c;无论是MySQL还是Oracle&#xff0c;都有一个函数可以使用&#xff0c;那就是COUNT 但是&#xff0c;就是这个常用的COUNT函数&#xff0c;却暗藏着很多玄机&#xff0c;尤其是在面试的时候&#xff0c;一不小心就会被虐。不信的话请尝试回答下…...

数位DP 详解及其案例实战 [模板+技巧+案例]

零. 案例引入 1.案例引入 leetcode233. 数字 1 的个数 给定一个整数 n&#xff0c;计算所有小于等于 n 的非负整数中数字 1 出现的个数。 输入&#xff1a;n 13 输出&#xff1a;6 2.暴力解 对于上述的案例&#xff0c;暴力解肯定是可行的&#xff0c;但时间复杂度较高,对…...

并发编程(六)—AbstractExecutorService源码分析

一、AbstractExecutorService简介AbstractExecutorService是一个抽象类&#xff0c;实现了ExecutorService接口&#xff0c;提供了线程池的基本实现。它是Java Executor框架的核心类&#xff0c;提供了线程池的基本操作&#xff0c;如提交任务、管理线程池、执行任务等。自定义…...

015行为型-职责链模式

目录定义标准模式实现&#xff1a;职责链变体使用链表实现使用数组实现应用场景日志输出spring过滤器spirng 拦截器mybatis动态sql定义 责链模式是一种设计模式&#xff0c;其目的是使多个对象能够处理同一请求&#xff0c;但是并不知道下一个处理请求的对象是谁。它能够解耦请…...

python例程:五子棋(控制台版)程序

目录《五子棋&#xff08;控制台版&#xff09;》程序使用说明程序示例代码可执行程序及源码下载路径《五子棋&#xff08;控制台版&#xff09;》程序使用说明 在PyCharm中运行《五子棋&#xff08;控制台版&#xff09;》即可进入如图1所示的系统主界面。 图1 游戏主界面 具…...

leveldb的Compaction线程

个人随笔 (Owed by: 春夜喜雨 http://blog.csdn.net/chunyexiyu) 1. leveldb的Compaction全局线程 在leveldb中&#xff0c;有一个全局的后台线程BGThread&#xff0c;用于数据库的MinorCompact与MajorCompact。 重点关注“全局线程”&#xff1a; 这个标识着无论一个进程打开…...

邪恶的想法冒出,立马启动python实现美女通通下

前言 嗨喽~大家好呀&#xff0c;这里是魔王呐 ❤ ~! 完整源码、python资料: 点击此处跳转文末名片获取 当我在首页刷到这些的时候~ 我的心里逐渐浮现一个邪念&#xff1a;我把这些小姐姐全都采集&#xff0c;可以嘛&#xff1f; 答案当然是可以的~毕竟就我这技术&#xff0c…...

蓝桥杯刷题冲刺 | 倒计时18天

作者&#xff1a;指针不指南吗 专栏&#xff1a;蓝桥杯倒计时冲刺 &#x1f43e;马上就要蓝桥杯了&#xff0c;最后的这几天尤为重要&#xff0c;不可懈怠哦&#x1f43e; 文章目录0.知识点1.乳草的入侵今天写 搜索题 0.知识点 DFS 设计步骤 确定该题目的状态&#xff08;包括边…...

经典算法面试题——Java篇-附带赠书活动,评论区随机选取一人赠书

目录 一.图书推荐 二.说一下什么是二分法&#xff1f;使用二分法时需要注意什么&#xff1f;如何用代码实现&#xff1f; 三.什么是插入排序&#xff1f;用代码如何实现&#xff1f; 四.什么是冒泡排序&#xff1f;用代码如何实现&#xff1f; 五.什么是斐波那契数列&#…...

支持RT-Thread最新版本的瑞萨RA2E1开发板终于要大展身手了

支持RT-Thread最新版本的瑞萨RA2E1开发板终于要大展身手了 熟悉RT-Thread和瑞萨MCU的朋友都知道&#xff0c;当前RT-Thread仓库的主线代码是不支持RA2E1这个BSP的。刚好&#xff0c;最近我在联合瑞萨推广一个叫《致敬未来的攻城狮计划》&#xff0c;使用的就是RA2E1开发板&…...

【C语言进阶】 12. 假期测评①

day01 1. 转义字符的判断 以下不正确的定义语句是&#xff08; &#xff09; A: double x[5] {2.0, 4.0, 6.0, 8.0, 10.0}; B: char c2[] {‘\x10’, ‘\xa’, ‘\8’}; C: char c1[] {‘1’,‘2’,‘3’,‘4’,‘5’}; D: int y[53]{0, 1, 3, 5, 7, 9}; 【答案解析】 B 本…...

给程序加个进度条吧,1行Python代码,快速添加~

大家好&#xff0c;这里是程序员晚枫。 你在写代码的过程中&#xff0c;有没有遇到过以下问题&#xff1f; 已经写好的程序&#xff0c;想看看程序执行的进度&#xff1f; 在写代码批量处理文件的时候&#xff0c;如何显示现在处理到第几个文件了&#xff1f; &#x1f446…...

常见的Keil5编译报错及其原因和解决方法

以下是几种常见的Keil5编译报错及其原因和解决方法&#xff1a; "Error: L6218E: Undefined symbol"&#xff08;未定义符号错误&#xff09; 这通常是由于缺少对应的库文件或者代码中有未声明的变量或函数引起的。解决方法是检查相应的库文件是否已正确添加到工程中…...

【大英赛】全国大学生英语竞赛C类历年真题、样卷、听力音频及答案解析电子版PDF(2012-2026年)

2026年全国大学生英语竞赛倒计时 2026年全国大学生英语竞赛&#xff08;NECCS&#xff09;将于4月12日上午9:00至11:00正式开赛&#xff0c;距离考试仅剩20天备考时间。 备考资料汇总 现已整理完成2012-2025年大英赛C类全套备考资料&#xff0c;PDF电子版&#xff0c;可下载…...

ESP8266 入门指南 — 从零开始烧录AT固件

1. 为什么需要烧录AT固件 第一次拿到ESP8266模块时&#xff0c;很多朋友会直接尝试用串口发送AT指令&#xff0c;结果发现模块毫无反应。这种情况我遇到过太多次了&#xff0c;根本原因在于模块没有预装AT固件。虽然部分商家会预先烧录好&#xff0c;但根据我的经验&#xff0c…...

电气工程优化调度Matlab代码优化与注释那些事儿

优化调度修改、注释、matlab代码&#xff0c;主要为但不限于电气工程优化调度相关方向 主要包括&#xff0c;但不限于&#xff1a; 1、在原有程序基础上替换算法&#xff1b; 2、修改优化调度程序yalmip求解器ipopt&#xff1b; 3、新买的代码没注释&#xff0c;可以注释并可以…...

BGP路由优化实战:加速收敛,提升网络稳定性

BGP路由优化实战&#xff1a;加速收敛&#xff0c;提升网络稳定性在复杂的网络环境中&#xff0c;尤其是在大规模数据中心或跨区域互联的网络中&#xff0c;BGP&#xff08;Border Gateway Protocol&#xff09;路由协议的性能直接影响着网络的可用性和用户体验。BGP 作为互联网…...

告别环境变量噩梦:一键批处理脚本详解,让QGIS在Windows下的编译配置自动化

告别环境变量噩梦&#xff1a;一键批处理脚本详解&#xff0c;让QGIS在Windows下的编译配置自动化 在GIS开发领域&#xff0c;QGIS作为开源地理信息系统的代表&#xff0c;其灵活性和可扩展性吸引了大量开发者。然而&#xff0c;每次从源码编译QGIS都像是一场与环境变量的搏斗—…...

VideoAgentTrek-ScreenFilter低光照与高对比度场景处理效果突破

VideoAgentTrek-ScreenFilter低光照与高对比度场景处理效果突破 不知道你有没有过这样的经历&#xff1a;在昏暗的房间里看手机&#xff0c;屏幕上的内容因为反光变得一片模糊&#xff1b;或者看一个明暗对比特别强烈的视频&#xff0c;亮的地方刺眼&#xff0c;暗的地方又黑得…...

解锁图像标注效率:LabelImg亮度调节功能提升标注准确性全指南

解锁图像标注效率&#xff1a;LabelImg亮度调节功能提升标注准确性全指南 【免费下载链接】labelImg LabelImg is now part of the Label Studio community. The popular image annotation tool created by Tzutalin is no longer actively being developed, but you can check…...

解锁旧Mac新生命:技术伙伴如何突破苹果限制

解锁旧Mac新生命&#xff1a;技术伙伴如何突破苹果限制 【免费下载链接】OpenCore-Legacy-Patcher 体验与之前一样的macOS 项目地址: https://gitcode.com/GitHub_Trending/op/OpenCore-Legacy-Patcher 你是否曾想过&#xff0c;那些被苹果官方"抛弃"的老旧Ma…...

PDF-Parser-1.0保姆级教程:5分钟搞定PDF文档智能解析,小白也能快速上手

PDF-Parser-1.0保姆级教程&#xff1a;5分钟搞定PDF文档智能解析&#xff0c;小白也能快速上手 1. 为什么选择PDF-Parser-1.0&#xff1f; 你是否遇到过这些烦恼&#xff1a; 从PDF复制文字到Word后格式全乱表格数据粘贴后变成一堆乱码论文里的数学公式无法编辑双栏排版的文…...

为什么你的Java车载模块在-40℃冷启动失败?温度敏感型JIT编译失效分析与AOT预编译加固方案(ISO 26262 Part 6实证)

第一章&#xff1a;Java车载系统实时性优化技巧在车载嵌入式环境中&#xff0c;Java虚拟机&#xff08;JVM&#xff09;的默认行为往往难以满足毫秒级响应、确定性调度与低抖动等硬实时需求。尽管Java并非传统实时语言&#xff0c;但通过深度配置与架构约束&#xff0c;可显著提…...