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)
(11)盛最多水的容器(中等) 实现思路: 定义两个指针(a,b),分别指向数组的前后位置,如果此时a的值小于b的话,就将a右移一位,如果此时b指向的值小于…...
【C语言】一篇带你从零了解 枚举
文章目录什么是枚举枚举类型的定义枚举的优点枚举的使用什么是枚举 枚举是 C 语言中的一种基本数据类型 可以让数据更简洁,更易读。 枚举顾名思义就是 一 一 列举。 把可能的取值 一 一列举。 比如我们现实生活中: 一周的星期一到星期日是有限的7天&…...

用Pytorch搭建一个房价预测模型
本文参加新星计划人工智能(Pytorch)赛道: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,过程如下: ServerSocketChannel是一个抽象类,WEPollSelectorProvider调用openServerSocketChannel方法创建的是它的实现类ServerSocketChannelImpl,类结构如下…...

Java stream性能比较
环境 Ubuntu 22.04IntelliJ IDEA 2022.1.3JDK 17CPU: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 …...

【数据结构与算法】设计循环队列
文章目录👑前言如何设计循环队列设计循环队列整体的代码📯写在最后👑前言 🚩前面我们 用队列实现了一个栈 ,用栈实现了一个队列 ,相信大家随随便便轻松拿捏,而本章将带大家上点难度,…...

最新版!国内IT软件外包公司汇总~
金三银四已经过去一半,再过几个月又将迎来毕业季,大家有没有找到心仪的工作机会呀?有很多同学说今年的金三银四似乎不存在了。小李:今年的金三银四变成了铜三铁四,不断地投递又不断地造拒。小王:大量已读不…...

MySQL的COUNT语句,竟然都能被面试官虐的这么惨!?
关于数据库中行数统计,无论是MySQL还是Oracle,都有一个函数可以使用,那就是COUNT 但是,就是这个常用的COUNT函数,却暗藏着很多玄机,尤其是在面试的时候,一不小心就会被虐。不信的话请尝试回答下…...
数位DP 详解及其案例实战 [模板+技巧+案例]
零. 案例引入 1.案例引入 leetcode233. 数字 1 的个数 给定一个整数 n,计算所有小于等于 n 的非负整数中数字 1 出现的个数。 输入:n 13 输出:6 2.暴力解 对于上述的案例,暴力解肯定是可行的,但时间复杂度较高,对…...

并发编程(六)—AbstractExecutorService源码分析
一、AbstractExecutorService简介AbstractExecutorService是一个抽象类,实现了ExecutorService接口,提供了线程池的基本实现。它是Java Executor框架的核心类,提供了线程池的基本操作,如提交任务、管理线程池、执行任务等。自定义…...
015行为型-职责链模式
目录定义标准模式实现:职责链变体使用链表实现使用数组实现应用场景日志输出spring过滤器spirng 拦截器mybatis动态sql定义 责链模式是一种设计模式,其目的是使多个对象能够处理同一请求,但是并不知道下一个处理请求的对象是谁。它能够解耦请…...

python例程:五子棋(控制台版)程序
目录《五子棋(控制台版)》程序使用说明程序示例代码可执行程序及源码下载路径《五子棋(控制台版)》程序使用说明 在PyCharm中运行《五子棋(控制台版)》即可进入如图1所示的系统主界面。 图1 游戏主界面 具…...
leveldb的Compaction线程
个人随笔 (Owed by: 春夜喜雨 http://blog.csdn.net/chunyexiyu) 1. leveldb的Compaction全局线程 在leveldb中,有一个全局的后台线程BGThread,用于数据库的MinorCompact与MajorCompact。 重点关注“全局线程”: 这个标识着无论一个进程打开…...

邪恶的想法冒出,立马启动python实现美女通通下
前言 嗨喽~大家好呀,这里是魔王呐 ❤ ~! 完整源码、python资料: 点击此处跳转文末名片获取 当我在首页刷到这些的时候~ 我的心里逐渐浮现一个邪念:我把这些小姐姐全都采集,可以嘛? 答案当然是可以的~毕竟就我这技术,…...

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

经典算法面试题——Java篇-附带赠书活动,评论区随机选取一人赠书
目录 一.图书推荐 二.说一下什么是二分法?使用二分法时需要注意什么?如何用代码实现? 三.什么是插入排序?用代码如何实现? 四.什么是冒泡排序?用代码如何实现? 五.什么是斐波那契数列&#…...

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

【C语言进阶】 12. 假期测评①
day01 1. 转义字符的判断 以下不正确的定义语句是( ) 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代码,快速添加~
大家好,这里是程序员晚枫。 你在写代码的过程中,有没有遇到过以下问题? 已经写好的程序,想看看程序执行的进度? 在写代码批量处理文件的时候,如何显示现在处理到第几个文件了? 👆…...
常见的Keil5编译报错及其原因和解决方法
以下是几种常见的Keil5编译报错及其原因和解决方法: "Error: L6218E: Undefined symbol"(未定义符号错误) 这通常是由于缺少对应的库文件或者代码中有未声明的变量或函数引起的。解决方法是检查相应的库文件是否已正确添加到工程中…...

基于距离变化能量开销动态调整的WSN低功耗拓扑控制开销算法matlab仿真
目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.算法仿真参数 5.算法理论概述 6.参考文献 7.完整程序 1.程序功能描述 通过动态调整节点通信的能量开销,平衡网络负载,延长WSN生命周期。具体通过建立基于距离的能量消耗模型&am…...
Python爬虫(二):爬虫完整流程
爬虫完整流程详解(7大核心步骤实战技巧) 一、爬虫完整工作流程 以下是爬虫开发的完整流程,我将结合具体技术点和实战经验展开说明: 1. 目标分析与前期准备 网站技术分析: 使用浏览器开发者工具(F12&…...
反射获取方法和属性
Java反射获取方法 在Java中,反射(Reflection)是一种强大的机制,允许程序在运行时访问和操作类的内部属性和方法。通过反射,可以动态地创建对象、调用方法、改变属性值,这在很多Java框架中如Spring和Hiberna…...
linux 下常用变更-8
1、删除普通用户 查询用户初始UID和GIDls -l /home/ ###家目录中查看UID cat /etc/group ###此文件查看GID删除用户1.编辑文件 /etc/passwd 找到对应的行,YW343:x:0:0::/home/YW343:/bin/bash 2.将标红的位置修改为用户对应初始UID和GID: YW3…...

多模态大语言模型arxiv论文略读(108)
CROME: Cross-Modal Adapters for Efficient Multimodal LLM ➡️ 论文标题:CROME: Cross-Modal Adapters for Efficient Multimodal LLM ➡️ 论文作者:Sayna Ebrahimi, Sercan O. Arik, Tejas Nama, Tomas Pfister ➡️ 研究机构: Google Cloud AI Re…...
Java编程之桥接模式
定义 桥接模式(Bridge Pattern)属于结构型设计模式,它的核心意图是将抽象部分与实现部分分离,使它们可以独立地变化。这种模式通过组合关系来替代继承关系,从而降低了抽象和实现这两个可变维度之间的耦合度。 用例子…...

【Linux】Linux 系统默认的目录及作用说明
博主介绍:✌全网粉丝23W,CSDN博客专家、Java领域优质创作者,掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域✌ 技术范围:SpringBoot、SpringCloud、Vue、SSM、HTML、Nodejs、Python、MySQL、PostgreSQL、大数据、物…...

论文阅读笔记——Muffin: Testing Deep Learning Libraries via Neural Architecture Fuzzing
Muffin 论文 现有方法 CRADLE 和 LEMON,依赖模型推理阶段输出进行差分测试,但在训练阶段是不可行的,因为训练阶段直到最后才有固定输出,中间过程是不断变化的。API 库覆盖低,因为各个 API 都是在各种具体场景下使用。…...

VisualXML全新升级 | 新增数据库编辑功能
VisualXML是一个功能强大的网络总线设计工具,专注于简化汽车电子系统中复杂的网络数据设计操作。它支持多种主流总线网络格式的数据编辑(如DBC、LDF、ARXML、HEX等),并能够基于Excel表格的方式生成和转换多种数据库文件。由此&…...

【深度学习新浪潮】什么是credit assignment problem?
Credit Assignment Problem(信用分配问题) 是机器学习,尤其是强化学习(RL)中的核心挑战之一,指的是如何将最终的奖励或惩罚准确地分配给导致该结果的各个中间动作或决策。在序列决策任务中,智能体执行一系列动作后获得一个最终奖励,但每个动作对最终结果的贡献程度往往…...