11.哀家要长脑子了!

目录

1.453. 最小操作次数使数组元素相等 - 力扣(LeetCode)

2.665. 非递减数列 - 力扣(LeetCode) 

3. 283. 移动零 - 力扣(LeetCode)

4. 3114. 替换字符可以得到的最晚时间 - 力扣(LeetCode)

5. 3115. 素数的最大距离 - 力扣(LeetCode)


1. 453. 最小操作次数使数组元素相等 - 力扣(LeetCode)

 

小姐姐 你这道题做过你还不知道做啊啊啊啊

首先可以这么想,这道题的本质就是让数组的高度差为0

每次操作将会使 n-1 个元素增加 1,换句话来说,每次操作可以让 1 个元素减 1;

那么我们就使得所有元素都变成最小值就可以使元素相等了

class Solution {
public:int minMoves(vector<int>& nums) {int res = 0;int min = *min_element(nums.begin(), nums.end());for(int i = 0; i < nums.size(); i++){res += nums[i] - min;// 每次都是只能减1 顺便就当计数器了}return res;}
};
2.665. 非递减数列 - 力扣(LeetCode) 

私密马赛,瓦达西菜菜酱没一点思路。。

非递减序列有a,b,c三种形式

需要改变的形式可能会有三种;

对于第①种和第②种我们可以选择对第 i-1 个元素操作或者是第 i 个元素:

把第i个元素变成跟第 i-1 个元素一样大或者把第 i-1 个元素变成跟第 i 个元素一样大。

但是我们选择对第 i-1 个元素操作,因为我们还没有遍历到后面,如果把第 i 个元素改变改成比后面大怎么办

对于第③种情况我们显而易见只能对第i个元素操作

class Solution {
public:bool checkPossibility(vector<int>& nums) {int flag = 0;for(int i = 1; i < nums.size(); i++){if(nums[i] < nums[i-1]){if(i == 1 || nums[i] >= nums[i-2]){nums[i-1] = nums[i];}else{nums[i] = nums[i-1];}flag++;}}// 最后成为非递减序列看操作次数if(flag <= 1)return true;return false;}
};
3. 283. 移动零 - 力扣(LeetCode)

这个神似我昨天做的那道题,我弯弯绕绕最后还是做出来了,还是没有真正掌握感觉

class Solution {
public:void moveZeroes(vector<int>& nums) {int left = 0, right = 1;for(int left = 0, right = 0; right < nums.size(); ){          if(nums[right] != 0){swap(nums[left], nums[right]);left++, right++;}else{right++;}}}    
};

 在题解区里面看到一些不一样的做法,撒个尿,标记一下,写一写

4. 3114. 替换字符可以得到的最晚时间 - 力扣(LeetCode)

第一次参加周赛,第一个做出来的题目,也只有这一个哈哈哈哈哈哈哈哈哈哈 小姐姐你。。

先看一下我周赛屎一样的答案

class Solution {
public:string findLatestTime(string s) {int i = 0, j = 0;while(s[0] == '?' || s[1] == '?'){if(s[0] == '?' && s[1] == '?' ){s[0] = '1';}if(s[0] == '?' && s[1] == '1' || s[1] == '0'){s[0] = '1';}    if(s[0] == '?' && s[1] != '?' && s[1] != '1'){s[0] = '0';}if(s[0] == '0' && s[1] == '?'){s[1] = '9';}if(s[0] == '1' && s[1] == '?'){s[1] = '1';}}while(s[3] == '?' || s[4] == '?'){if(s[3] == '?'){s[3] = '5';}if(s[3] != '?' && s[4] == '?'){s[4] = '9';}}return s;}
};

真的不知道在干吗。。。

就是太急了 然后思路又不清晰 感觉平时有点依赖题解了,到现在简单中等问题应该自己想一想了

看看灵神的直接判断

其实挺简单的我不知道为什么我当时扯7扯8

对于小时:(00, 01, 02, 03, 04, 05, 06, 07, 08, 09, 10, 11)

第一个字符不是0就是1;这要看后面第二个字符的影响。如果第二个字符是?那第一个字符就直接取最大的啊——1;如果第二个字符是比1小的那第一个字符就选1,如果第二个字符是比1大的(2,3,4,5,6,7,8,9)就只能选0,因为最大的是11

第二个字符:当第一个字符是0的时候第二个字符最大可以取9;第一个字符是1 的时候最大只能取1了咯

对于分钟:那就简单了

class Solution {
public:string findLatestTime(string s) {if (s[0] == '?') {s[0] = s[1] == '?' || s[1] <= '1' ? '1' : '0';}if (s[1] == '?') {s[1] = s[0] == '1' ? '1' : '9';}if (s[3] == '?') {s[3] = '5';}if (s[4] == '?') {s[4] = '9';}return s;}
};

我知道了,我自己写的时候就是不清楚代码,程序是顺序结构运行的啊,已经先处理了第一个字符,在处理第二个字符时,还要去讨论第一个字符是?的情况

这种短代码写起来好高级的感觉,可是我现在还是if-else...

class Solution {
public:string findLatestTime(string s) {if(s[0] == '?' ){if(s[1] == '?'){s[0] = '1';}else if(s[1] <= '1'){s[0] = '1';}else{s[0] = '0';}}if(s[1] == '?'){if(s[0] == '1'){s[1] = '1';}else{s[1] = '9';}}    if(s[3] == '?'){s[3] = '5';}if(s[4] == '?'){s[4] = '9';}return s;}
};

下面这个方法暴力枚举

class Solution {
public:string findLatestTime(string s) {for (int h = 11; ; h--) {if (s[0] != '?' && s[0] - '0' != h / 10 || s[1] != '?' && s[1] - '0' != h % 10) {continue;}for (int m = 59; m >= 0; m--) {if (s[3] != '?' && s[3] - '0' != m / 10 || s[4] != '?' && s[4] - '0' != m % 10) {continue;}char ans[6];sprintf(ans, "%02d:%02d", h, m);return string(ans);}}}
};

我天呢 搞半天没搞懂 明白了之后感觉好神奇(对不起,我真的很菜)但是我不知道怎么说

首先就是直接从最大的时间开始循环,,,感觉是一个能不能的问题

5. 3115. 素数的最大距离 - 力扣(LeetCode)

不是小姐姐这个也不难啊 你是为什么做不出。。。

因为我还以为要记录下标然后去找最大的TAT,天爷啊,你脑子转个弯呢!!你直接从左边找从右边找不就好!!这不就是两个距离最大的素数!!

class Solution {bool prime(int n){// 别写成 i < sqrt(n) 是不对滴for(int i = 2; i * i <= n; i++){if(n % i == 0){return false;}}return n >= 2;}
public:int maximumPrimeDifference(vector<int>& nums) {int i, j;for(i = 0; i < nums.size(); i++){if(prime(nums[i]))break;}for(j = nums.size() - 1; j >= 0; j--){if(prime(nums[j]))break;}return j-i;}
};

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

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

相关文章

说说我理解的数据库中的Schema吧

一、SQL标准对schema如何定义&#xff1f; ISO/IEC 9075-1 SQL标准中将schema定义为描述符的持久命名集合&#xff08;a persistent, named collection of descriptors&#xff09;。 大部分的网上资料定义Schema如下&#xff1a; schema是用来组织和管理数据的一种方式。它…

activiti7.0集成人大金仓数据库

说明 人大金仓数据库和mysql数据库比较相似&#xff0c;部分语法也类似。activiti中默认集成的是mysql数据源&#xff0c;而且并没有集成过人大金仓数据库。所以想要集成人大金仓数据库就要将该类的的数据源配置到其中去。这里的思路就是在流程引擎初始化数据库datasource的时…

对中小企业来说,一次的勒索事件有可能造成致命的伤害

勒索攻击越来越频繁 去年的勒索事件数据呈现出显著的增长趋势。具体来说&#xff0c;全球范围内的勒索软件攻击活动愈演愈烈&#xff0c;受害者数量创下历史新高&#xff0c;同比增长了46%。 例如&#xff0c;2023年伊始&#xff0c;英国皇家邮政成为了勒索团伙LockBit的大型…

QT 使用redis ,连接并使用

一.redis安装 链接&#xff1a;https://pan.baidu.com/s/17fXKOj5M4VIypR0y5_xtHw 提取码&#xff1a;1234 1.下载得到文件夹如图 course_redis为安装包。 2.启动Redis服务 把安装包解压到某个路径下即可。 打开cmd窗口&#xff0c;切换到Redis安装路径&#xff0c;输入 r…

LLM激活稀疏性加速

相关工作 Deja vu Contextual sparsity for efficient llms at inference time LLM in a flash Efficient Large Language Model Inference with Limited Memory ReLU Strikes Back Exploiting Activation Sparsity in Large Language Models ReLU2 Wins: Discovering Effi…

量子飞跃:从根本上改变复杂问题的解决方式

内容来源&#xff1a;量子前哨&#xff08;ID&#xff1a;Qforepost&#xff09; 编辑丨王珩 编译/排版丨沛贤 深度好文&#xff1a;1000字丨5分钟阅读 利用多功能量子比特的量子计算机已处于解决复杂优化问题的最前沿&#xff0c;例如旅行商问题&#xff0c;这是一个典型的…

GRU之我见(含案例讲解)

GRU&#xff08;Gated Recurrent Unit&#xff09;是一种常用于处理序列数据的深度学习模型&#xff0c;特别是在自然语言处理&#xff08;NLP&#xff09;和时间序列分析领域。它是一种循环神经网络&#xff08;RNN&#xff09;的变种&#xff0c;旨在解决长期依赖和梯度消失问…

torch.where()中并行方式的实现

torch.where()中一般有三个参数。 第一个参数是一个判断条件。 第二个参数是条件成立时的值。 第三个参数是条件不成立时的值。 for batch in range(2):for i in range(256):for j in range(256):output[batch][i][j] 0 if tensor_count_0[A_arg[batch,i,j]][B_arg[batch,i…

MATLAB利用A星/A*算法求障碍地图两点最短路径

MATLAB利用A星/A*算法求障碍地图两点最短路径 MATLAB利用A星/A*算法求障碍地图两点最短路径

大模型日报2024-04-12

大模型日报 2024-04-12 大模型资讯 Meta即将发布具有“人类水平认知”的AI模型 摘要: Meta公司宣称即将推出具备“人类水平认知”的人工智能模型。这标志着我们可能即将进入一个全新的大型语言模型和聊天机器人领域。Meta的Llama 3和OpenAI的GPT-5将为这一领域带来革命性的进展…

前端-每天一道面试题(1)-HTML常见的布局方式

哈喽&#xff0c;大家好&#xff0c;本来今天要更新项目内容的&#xff0c;但是考虑到由于是全国大学生服务外包大赛组委会的题目&#xff0c;而且比赛目前也正在进行&#xff0c;作品提交尚未截止&#xff0c;为了避免由于试题版权而引发的一系列问题&#xff0c;这个系列目前…

10、【代理模式】通过引入一个代理对象来控制对原始对象的访问的方式。

你好&#xff0c;我是程序员雪球。 今天我们了解代理模式的原理、静态代理和动态代理的区别、Spring AOP 和动态代理的关系、代理模式的使用场景&#xff0c;以及用 Java 实现一个动态代理示例 一、代理模式的原理 代理模式是一种设计模式&#xff0c;它提供了一种通过引入一个…

概念:CPU、内存、磁盘、Android内存分配

cpu CPU的全称是Central Processing Unit&#xff0c;中文名称为中央处理单元。它是计算机硬件的核心部件&#xff0c;负责解释计算机程序指令并处理计算机软件中的数据。简言之&#xff0c;CPU执行计算机程序中的操作指令&#xff0c;包括基本算术、逻辑、控制和输入/输出&am…

手把手带你搞懂电压跌落测试DIP

针对很多入门小白不懂元器件&#xff0c;一些老工程师上班很多年有的也不懂得总结知识点&#xff0c;以及想学习不知道怎么系统学习的这一类人群&#xff0c;前方知识点来袭&#xff0c;请君放心食用~ 一&#xff0c;项目背景介绍 最近做项目过程中&#xff0c;客户要求要做电…

wps使用Latex编辑公式没有Latex formula

wps使用Latex编辑公式没有Latex formula 1. 下载CTEX2. 下载LaTeXEE3. 配置Miktex4. 配置latexee5. 用管理员权限运行latexeqedit.exe6. wps插入latex公式 1. 下载CTEX 下载CTEX网址&#xff0c;我下载的下图这个&#xff0c;下载完了之后运行exe文件安装ctex。 2. 下载LaTe…

【Entity Framework】你要知道EF中功能序列与值转换

【Entity Framework】你要知道EF中功能序列与值转换 文章目录 【Entity Framework】你要知道EF中功能序列与值转换一、序列1.1 基本用法1.2 配置序列设置 二、值转换2.1 配置值转换器2.2 批量配置值转换器2.3 预定义的转换2.4 ValueConverter类2.5 内置转换器 三、应用3.1 简单…

Java中的TCP通信

TCP通信 TCP通信Socket客户端ServerSocket服务端 例子&#xff1a;一发一收例子&#xff1a;多发多收异常捕获 例子&#xff1a;服务器与多个客户端同时通信多客户端通信架构服务端代码ServerReaderThread 服务端读数据线程 TCP通信 特点&#xff1a;面向连接、可靠通信 通信双…

动态数据源实现分表走shardingsphere,不分表走其他

shardingsphere从4.1.1升级到5.2.1但是还没有完结&#xff0c;因为在执行存储过程的时候&#xff0c;系统提示错误如下。shardingsphere是不支持存储过程呢&#xff0c;但项目中不能避免使用存储过程&#xff0c;因为有大量的数据需要初始化&#xff0c;这种情况该如何应对&…

韩顺平Java | C25 JDBC和连接池(下)

JDBCUtils工具类 ※事物 批处理 ※连接池 DataSource DBCP C3P0 Proxool BoneCP ※Druid Apache-DBUtils DAO增删改查-BasicDao

AI绘梦师新项目歪门邪道2.0游戏玩法,仅需拷贝,一键生成,单日盈利500

我们今天要介绍的项目是“AI绘梦师新项目歪门邪道2.0游戏玩法”。这个项目的核心是利用AI技术帮助企业将用户的梦境转化为美术作品。操作起来非常简单&#xff0c;只需复制用户描述的梦境内容&#xff0c;然后将其输入到AI绘画软件中&#xff0c;软件就能自动生成相应的画作。 …