笔试强训day37

旋转字符串

描述

字符串旋转:

给定两字符串A和B,如果能将A从中间某个位置分割为左右两部分字符串(可以为空串),并将左边的字符串移动到右边字符串后面组成新的字符串可以变为字符串B时返回true。

例如:如果A=‘youzan’,B=‘zanyou’,A按‘you’‘zan’切割换位后得到‘zanyou’和B相同,返回true。

再如:如果A=‘abcd’,B=‘abcd’,A切成‘abcd’和’'(空串),换位后可以得到B,返回true。

数据范围:A,B字符串长度满足 n≤1000n≤1000,保证字符串中仅包含小写英文字母和阿拉伯数字

进阶: 时间复杂度 O(n)O(n),空间复杂度 O(n)O(n)

上去先判断s和t的字符串长度是否是相同的,如果是不相同的是不可能通过旋转变成相同的,所以直接返回false就可以了,如果是相同的长度的话,就把s的长度*2,去判断之后的字符串中是否含有t字符串就可以了

class Solution {
public:bool solve(string s, string t) {// write code hereif(s.size() != t.size()) return false;else return (s+s).find(t)!=-1; }
};

合并k个已排序的链表

描述

合并 k 个升序的链表并将结果作为一个升序的链表返回其头节点。

数据范围:节点总数 0≤n≤50000≤n≤5000,每个节点的val满足 ∣val∣<=1000∣val∣<=1000

要求:时间复杂度 O(nlogn)O(nlogn)

使用一个最小堆,加上一个最小堆的比较规则

/*** struct ListNode {*	int val;*	struct ListNode *next;*	ListNode(int x) : val(x), next(nullptr) {}* };*/struct cmp {bool operator()(ListNode* a, ListNode* b) {return a->val > b->val; // 假设按节点的值进行比较,值小的优先级高}
};
class Solution {
public:ListNode* mergeKLists(vector<ListNode*>& lists) {// write code herepriority_queue<ListNode*,vector<ListNode*>,cmp > pq;for(auto cur:lists){if(cur)pq.push(cur);}auto dummy = new ListNode(-1);auto cur = dummy;while(!pq.empty()){ListNode* node = pq.top();pq.pop();if(node->next)pq.push(node->next);cur->next = node;cur = node;}ListNode* head = dummy->next;delete dummy;return head;}
};

滑雪

描述

给定一个n×m n×m 的矩阵,矩阵中的数字表示滑雪场各个区域的高度,你可以选择从任意一个区域出发,并滑向任意一个周边的高度严格更低的区域(周边的定义是上下左右相邻的区域)。请问整个滑雪场中最长的滑道有多长?(滑道的定义是从一个点出发的一条高度递减的路线)。

(本题和矩阵最长递增路径类似,该题是当年NOIP的一道经典题)

数据范围: 1≤n,m≤100 1≤n,m≤100 ,矩阵中的数字满足 1≤val≤1000 1≤val≤1000

输入描述:

第一行输入两个正整数 n 和 m 表示矩阵的长宽。
后续 n 行输入中每行有 m 个正整数,表示矩阵的各个元素大小。

输出描述:

输出最长递减路线。

解法是记忆化搜索,和矩阵的最长递增路径非常相似,可以参考那道题的代码

#include <cstdio>
#include <iostream>
#include <cstring>using namespace std;
int n,m;
const int N = 110;
int g[N][N],memo[N][N];
int dx[4]{1,-1,0,0},dy[4]{0,0,1,-1};int  dfs(int i,int j)
{if(memo[i][j]!=-1)return memo[i][j];int ans = 1;for(int k = 0;k<4;++k){int x = i+dx[k],y=j+dy[k];if(x>=0&&x<n&&y>=0&&y<m&&g[x][y] < g[i][j]){ans = max(ans,dfs(x,y)+1);}}return memo[i][j]=ans;
}
int main()
{cin>>n>>m;for(int i = 0;i<n;++i){for(int j = 0;j<m;++j){cin>>g[i][j];}}memset(memo,-1,sizeof memo);int ans = 1;for(int i = 0;i<n;++i){for(int j = 0;j<m;++j){ans = max(ans,dfs(i,j));}}cout<<ans<<endl;return 0;
}

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

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

相关文章

YOLO11改进|注意力机制篇|引入轴向注意力Axial Attention

目录 一、【Axial Attention】注意力机制1.1【Axial Attention】注意力介绍1.2【Axial Attention】核心代码二、添加【Axial Attention】注意力机制2.1STEP12.2STEP22.3STEP32.4STEP4三、yaml文件与运行3.1yaml文件3.2运行成功截图一、【Axial Attention】注意力机制 1.1【Axi…

【JPCS独立出版,EI检索稳定】第三届能源互联网及电力系统国际学术会议(ICEIPS 2024)

第三届能源互联网及电力系统国际学术会议&#xff08;ICEIPS 2024&#xff09; 2024 3rd International Conference on Energy Internet and Power Systems ICEIPS 2024已成功申请JPCS - Journal of Physics: Conference Series (ISSN:1742-6596) ICEIPS 2024独立出版&…

TCP——Socket

应用进程只借助Socket API发和收但是不关心他是怎么进行传和收的 数据结构 图示Socket连接 捆绑属于隐式捆绑

200Kg大载重多旋无人机价格高昂技术分析

200Kg大载重多旋无人机作为一种高度专业化的航空工具&#xff0c;其价格相较于普通无人机显著较高&#xff0c;这主要是由于其在技术设计和生产过程中所需的高要求所致。以下是对其价格高昂的技术分析&#xff1a; 一、高性能材料与结构设计 1. 高强度轻量化材料&#xff1a;…

Python,Swift,Haskell三种语言在使用正则表达式上的方法对比

这里插入图片描述](https://i-blog.csdnimg.cn/direct/fea1494d0d0c4c9880881493929a8b91.png)在讨论 Python、Swift 和 Haskell 在正则表达式处理字符串方面的优缺点时&#xff0c;可以从它们对正则表达式的支持、灵活性和性能进行比较。以下通过具体的正则表达式字符串匹配例…

【前端】如何制作一个自己的代码(10)

接上文。 颜色名称 将color的属性值&#xff0c;设置成颜色的英文名就能显示对应的颜色。 比如&#xff0c;这里的red表示红色&#xff0c;这种设置颜色的方式是最简单的。 但是不同的浏览器&#xff0c;对颜色的解析可能存在差异&#xff0c;实际开发中不建议使用颜色名称来…

VUE基础(2)

一.分析脚手架 1.1.脚手架文件结构 ├── node_modules ├── public │ ├── favicon.ico: 页签图标 │ └── index.html: 主页面 ├── src │ ├── assets: 存放静态资源 │ │ └── logo.png │ │── component: 存放组件 │ │ └── He…

内网wordpress更换IP后无法访问的解决办法

一、现象 一台装有wordpress的台式机&#xff0c;从一个校区移到了另一个校区&#xff0c;更换了IP地址&#xff0c;导致无法正常访问。 二、分析 安装wordpress的时候里面的ip&#xff08;或域名&#xff09;都已固定。安装好后&#xff0c;内网通过IP访问&am…

2024年10月份实时获取地图边界数据方法,省市区县街道多级联动【附实时geoJson数据下载】

首先&#xff0c;来看下效果图 在线体验地址&#xff1a;https://geojson.hxkj.vip&#xff0c;并提供实时geoJson数据文件下载 可下载的数据包含省级geojson行政边界数据、市级geojson行政边界数据、区/县级geojson行政边界数据、省市区县街道行政编码四级联动数据&#xff0…

7、Vue2(二) vueRouter3+axios+Vuex3

14.vue-router 3.x 路由安装的时候不是必须的&#xff0c;可以等到使用的时候再装&#xff0c;如果之前没有安装的话&#xff0c;可以再单独安装。之前的终端命令行不要关闭&#xff0c;再重新开一个&#xff0c;还需要再package.json文件的依赖中添加。 如果忘记之前是否有安…

ESP32移植Openharmony设备开发---(4)Timer定时器

Timer内核定时器 官方文档&#xff1a;OpenAtom OpenHarmony 所需头文件&#xff1a;los_swtmr.h 头文件所在位置&#xff1a; 基本概念&#xff1a; 软件定时器 软件定时器&#xff0c;是基于系统Tick时钟中断且由软件来模拟的定时器&#xff0c;当经过设定的Tick时钟计数…

猫分鱼干 -算法题解

题目 假如有一群猫排成一行&#xff0c;要分配鱼干&#xff0c;每一只猫都有一个等级值。你作为管理员有很多鱼干但是需要按下边的分配制度分配&#xff1a; 1. 每一只猫至少要分配一斤鱼干&#xff0c;鱼干分配最小单位是斤&#xff0c;必须保证是整数。 2. 猫比他们邻居有更高…

大语言模型训练

大语言模型训练 1.两大问题2.并行训练2.1数据并行2.2模型并行2.3张量并行2.4混合并行 3.权重计算3.1浮点数3.2混合精度训练3.3deepspeed&#xff08;微软&#xff09;3.3.1 ZeRO3.3.2ZeRO-offload 3.3总结 4.PEFT4.1Prompt TuningPrefix-tuning4.2P-tuning & P-tuning v2 5…

数字图像处理:图像去噪

图像去噪–总变差去噪&#xff08;TV&#xff09; 引用资料&#xff1a; 1.全变分图像去噪算法&#xff08;TV&#xff09; 2.TV去噪的理解 总变差去噪 (Total Variation Denoising) 是一种经典的图像去噪方法&#xff0c;能够有效减少噪声&#xff0c;同时保留图像的边缘细节…

10.15.2024刷华为OD C题型(二)

10.15.2024刷华为OD C题型&#xff08;二&#xff09; 密码输入检测智能成绩表 如果是目标院校150分能过&#xff0c;而且这道题是两百分的话我就阿弥陀佛了。 这类简单类型的字符串处理题目一看就有思路&#xff0c;起码能做&#xff0c;遇到那种稍微加点数学的&#xff0c;感…

【STM32 HAL库】MPU6050姿态解算 卡尔曼滤波

【STM32 HAL库】MPU6050姿态解算 卡尔曼滤波 前言MPU6050寄存器代码详解mpu6050.cmpu6050.h 使用说明 前言 本篇文章基于卡尔曼滤波的原理详解与公式推导&#xff0c;来详细的解释下如何使用卡尔曼滤波来解算MPU6050的姿态 参考资料&#xff1a;Github_mpu6050 MPU6050寄存器…

C语言中的文件操作:从基础到深入底层原理

文件操作是几乎所有应用程序的重要组成部分&#xff0c;特别是在系统级编程中。C语言因其高效、灵活以及接近硬件的特点&#xff0c;成为了文件操作的理想选择。本文将全面深入地探讨C语言中的文件操作&#xff0c;从文件系统的概念到具体的文件操作函数&#xff0c;再到底层的…

外包干了2年,技术原地踏步。。。。。

先说一下自己的情况&#xff0c;本科生&#xff0c;19年通过校招进入南京某软件公司&#xff0c;干了接近2年的功能测试&#xff0c;今年年初&#xff0c;感觉自己不能够在这样下去了&#xff0c;长时间呆在一个舒适的环境会让一个人堕落!而我已经在一个企业干了2年的功能测试&…

020 elasticsearch7.10.2 elasticsearch-head kibana安装

文章目录 全文检索流程ElasticSearch介绍ElasticSearch应用场景elasticsearch安装允许远程访问设置vm.max_map_count 的值 elasticsearch-head允许跨域 kibana 商品数量超千万&#xff0c;数据库无法使用索引 如何使用全文检索&#xff1a; 使用lucene&#xff0c;在java中唯一…

Nginx(Linux):启动停止Nginx

目录 1、理解Nginx后台进程2、停止Nginx(方式一&#xff1a;使用信号源)2.1 获取master进程号2.1 设置信号源 3、停止Nginx(方式二&#xff1a;使用命令行) 1、理解Nginx后台进程 Nginx后台进程包含master和worker两类进程。 master进程&#xff1a;主要用来管理worker进程&am…