笔试练习day7
目录
- OR59 字符串中找出连续最长的数字串
- 题目解析
- 解法(双指针遍历)
- 代码
 
 
 
- NC109 岛屿数量
- 题目解析
- 解法
- 代码(dfs)
- dfs的实现
 
 
 
- 拼三角
- 题目解析
- 解法(枚举)
- 代码
 
 
 
感谢各位大佬对我的支持,如果我的文章对你有用,欢迎点击以下链接
🐒🐒🐒 个人主页
🥸🥸🥸 C语言
🐿️🐿️🐿️ C语言例题
🐣🐣🐣 python
🐓🐓🐓 数据结构C语言
🐔🐔🐔 C++
🐿️🐿️🐿️ 文章链接目录
🏀🏀🏀 笔试练习题
OR59 字符串中找出连续最长的数字串
OR59 字符串中找出连续最长的数字串

题目解析
这道题是找出最长连续的数字,并将这串数字以字符串的形式输出,解题的思路就是用两个指针(i和j)遍历这个字符串
 
 当i指针第一次遇到数字字符时就将位置给到j指针
 
 
 此时j往后开始去查找这个连续的数字字符串有多长,当j遇到不是数字字符的时候就表示这个连续的数字字符串已经找完了,要计算他的长度.这个长度的计算我们可以直接用两个变量去记录这个数字字符串的起始位置和长度
 
然后i变到j的下一个位置继续重复上面操作
 
 当遇到字符串长度比之前的len要大的时候就更新begin和len
解法(双指针遍历)
代码
int main() {string s;cin >> s;int begin = -1, len = 0;for (int i = 0; i < s.size(); i++) {if (s[i] >= '0' && s[i] <= '9') {int j = i;while (j < s.size() && s[j] >= '0' && s[j] <= '9' ) {j++;}if (j - i > len) {len = j - i;begin = i;}i = j + 1;}}cout << s.substr(begin, len) << endl;return 0;
}
NC109 岛屿数量
NC109 岛屿数量
 
题目解析
根据题目描述下面的这个例子有3个岛屿
 
 其中绿色圆圈圈起的数字虽然没有上下左右之间的关系,但是也是相连的岛屿
 
解法
这道题解法就是通过bfs/dfs搜索去寻找连通的岛屿并标记已经找到的岛屿
代码(dfs)
class Solution {public:int m, n;int dx[4] = {0, 0, 1, -1};int dy[4] = {1, -1, 0, 0};bool vis[210][210] = {0};int solve(vector<vector<char> >& grid) {m = grid.size(), n = grid[0].size();int ret = 0;for (int i = 0; i < m; i++) {for (int j = 0; j < n; j++) {if (grid[i][j] == '1' && !vis[i][j]) {ret++;dfs(grid, i, j);}}}return ret;}};
因为这个岛屿需要上下左右的搜索,所以需要方向数组(之前的题也有类似的)
 在搜索时需要进行标记已经搜索过的岛屿,所以要用一个bool类型的数组vis,因为岛屿矩阵的范围是200200,所以vis数组的范围我们应该选择大于200200的范围
 二维数组的长和宽我们用m和n进行表示,ret来记录有多少个岛屿
 通过两层for循环去遍历这个二维数组
 然后用条件判断当grid[i][j]==1的时候表示这里有岛屿,且我们还要看这个岛屿是否之前已经被搜索过了,所以!vis[i][j]
 条件符合时就让ret++记录这个岛屿,并且用dfs去标记周围连通的岛屿
dfs的实现
   void dfs(vector<vector<char>>& grid, int i, int j) {vis[i][j] = true;for (int k = 0; k < 4; k++) {int x = i + dx[k], y = j + dy[k];if (x >= 0 && x < m && y >= 0 && y < n && grid[x][y] == '1'&&!vis[x][y]) {dfs(grid, x, y);}}}
进入dfs时grid[i][j]是有岛屿的,所以要进行标记
 然后利用方向数组对grid[i][j]的周围进行搜索,并且要判断是否越界,当满足grid[x][y] == '1’和vis[x][y]没有被标记时就继续进入dfs(grid, x, y)
拼三角
拼三角
 
题目解析
题目意思就是给了6个棍子,但是这6个棍子的长度是不一样的,需要在选出3根来组成一个三角形的同时剩下的3根也能组成
解法(枚举)
因为这道题只给了6根棍子,所以搭配的方式比较少,我们可以把所有情况列出来
 由排列组合可得所以的情况只有654/322=10种
 具体我们可以用三重for循环去枚举,第一个for循环选第一根棍子,第二跟for循环选第二跟棍子,第三个for循环就选第三根棍子,在循环内部再检查是否能组成三角形
 第二个方法就是用dfs去枚举
第三个方法就是优化后的枚举
 我们知道三角形的判断条件如下
 
 我们假设三个棍子长度分别为a b c
 如果我们将这三个棍子长度进行排序,那么我们判断条件就会简单许多
 假如a<b<c
 
 那么我们就会发现判断条件就会少两个
 
 所以我们对开始的6根棍子进行排序,排序过后就需要枚举以下的10种情况
 
 当我们在枚举0 1 2和3 4 5的时候如果他们的条件成立就不需要再枚举后面的情况(因为已经满足条件了)
 
 而如果枚举0 1 2和3 4 5的时候发现不满足条件那么他后面的几种情况就不需要再考虑(因为0+1<2那么0+1也同时<3)
 
 所以根据上面的思路我们只需要枚举4种情况就可以了
 
代码
#include<iostream>
#include<algorithm>
using namespace std;
int t;
int arr[6];
int main()
{cin>>t;while(t--){for(int i=0;i<6;i++)cin>>arr[i];sort(arr,arr+6);if(arr[0]+arr[1]>arr[2]&&arr[3]+arr[4]>arr[5]||arr[0]+arr[2]>arr[3]&&arr[1]+arr[4]>arr[5]||arr[0]+arr[3]>arr[4]&&arr[1]+arr[2]>arr[5]||arr[0]+arr[4]>arr[5]&&arr[1]+arr[2]>arr[3])cout<<"Yes"<<endl;elsecout<<"No"<<endl;}return 0;
}
相关文章:
 
笔试练习day7
目录 OR59 字符串中找出连续最长的数字串题目解析解法(双指针遍历)代码 NC109 岛屿数量题目解析解法代码(dfs)dfs的实现 拼三角题目解析解法(枚举)代码 感谢各位大佬对我的支持,如果我的文章对你有用,欢迎点击以下链接 🐒🐒🐒 个人主页 &…...
 
python 爬虫 入门 一、基础工具
目录 一,网页开发者工具的使用 二、通过python发送请求 (一)、get (二)、带参数的get (三)、post 后续:数据解析 一,网页开发者工具的使用 我们可以用 requests 库…...
金融衍生品中的风险对冲策略分析
金融衍生品是现代金融市场中不可或缺的一部分,它们通过标的资产的价格波动为投资者提供了多样的风险管理工具。随着市场的不确定性和复杂性增加,风险对冲成为企业和个人投资者的首要任务。本文将深入探讨金融衍生品中的常见风险对冲策略,分析…...
 
linux下建立软链接
深度学习训练中经常会遇到数据量庞大或者工程中模型报错太多导致磁盘空间不够,但是又不想修改原来在代码中写的路径,这个时候制作软连接很有作用,把占用量大的目录移到别的空闲磁盘,然后在原来的目录做一个软连接指向那个移到的空…...
MySql数据库left join中添加子查询
user表查询出数据列表(多条,如id)左连接到order表中的order_agent_id字段,并通过 order_agent_id分组,求和user_order_partner,使用COALESCE()聚合函数对未获取到和值的进行默认赋值,防止查询不…...
redis--过期策略和内存淘汰策略
redis过期策略 1、惰性删除 当客户端尝试访问某个键时,Redis会先检查该键是否设置了过期时间,并判断是否过期。 如果键已过期,则Redis会立即将其删除。这就是惰性删除。 总结:该策略可以最大化的节省CPU资源,却对内存非…...
 
qt QTableview 左侧 序号 倒序
本文主要在QTableview插入数据的基础上,使左边序号实现倒序,实现如下图所示。 解决办法: QTableview左侧是QHeaderView类构成的,重写QHeaderView的paintSection, 重写序号的文字内容,进而 实现QTableview …...
 
隧道代理IP如何帮助企业采集数据?
在数字化时代,数据已成为企业决策的重要基石。无论是市场调研、竞品分析,还是用户行为研究,高质量的数据采集都是企业成功的关键。然而,面对复杂的网络环境和日益严格的反爬虫机制,如何高效、稳定地采集数据成为了一个…...
 
Spring Boot知识管理系统:技术与方法论
2相关技术 2.1 MYSQL数据库 MySQL是一个真正的多用户、多线程SQL数据库服务器。 是基于SQL的客户/服务器模式的关系数据库管理系统,它的有点有有功能强大、使用简单、管理方便、安全可靠性高、运行速度快、多线程、跨平台性、完全网络化、稳定性等,非常适…...
 
SpringBoot1~~~
目录 快速入门 依赖管理和自动配置 修改自动仲裁/默认版本号 starter场景启动器 自动配置 修改默认扫描包结构 修改默认配置 读取application.properties文件 按需加载原则 容器功能 Configuration Import 编辑 Conditional ImportResource 配置绑定Configur…...
 
兼容多家品牌手机的多协议取电快充芯片
随着智能手机的普及和功能不断的增强,电池续航能力成为了用户关注的焦点,为了解决这各问题各大手机厂商推出了手机快充技术,快充协议是快充技术的核心,每家品牌手机都有自己的独家快充协议,如FCP/SCP协议是华为手机的独…...
Java和Python的不同
1. 语法差异 Java: - Java是一种强类型语言,要求在编译时明确变量的数据类型。 - Java代码块由大括号 {} 包围,如方法体、循环和条件语句。 - Java使用分号 ; 作为语句的结束符。 public class HelloWorld {public static void main(String[] args) {S…...
 
Moshang摩熵医药数据库
摩熵医药数据库是摩熵数科信息公司旗下的一个核心产品,专注于为医药行业提供全面的数据支持和决策服务。该医药数据库整合了中、美、欧、日等全球七十多个主流国家的数10万数据信息源,其中收载的50亿数据体系的覆盖了生物医药全生命周期数据和精细化工全…...
 
基于web的酒店客房管理系统【附源码】
基于web的酒店客房管理系统(源码L文说明文档) 目录 4 系统设计 4.1 系统概述 4.2系统结构 4.3.数据库设计 4.3.1数据库实体 4.3.2数据库设计表 5系统详细实现 5.1 用户信息管理 5.2 会员信息管理 5.3 客房信息管理 5.…...
 
潜水定位通信系统的功能和使用方法_鼎跃安全
潜水定位通信系统是保障潜水安全与作业高效的关键设备。它利用先进的声呐、无线电等技术,可精准定位潜水员位置。在水下能实现潜水员之间以及与水面的双向通信,确保信息及时传递。具备高可靠性和稳定性,即使在复杂水环境中也能正常运行。 一、…...
 
Golang | Leetcode Golang题解之第477题汉明距离总和
题目: 题解: func totalHammingDistance(nums []int) (ans int) {n : len(nums)for i : 0; i < 30; i {c : 0for _, val : range nums {c val >> i & 1}ans c * (n - c)}return }...
 
JavaWeb——Maven(1/8):整体介绍(什么是Maven、Maven的作用、小结)
目录 什么是Maven Maven的作用 依赖管理 统一项目结构 项目构建 小结 Web前端开发的知识了解完毕后,接下来要进入后端Web开发的学习,这一部分的内容是学习的重点。在这一部分内容中,首先要了解 Java 项目的构建工具 Maven。 首先先来介…...
 
Vivado 跟Xilinx SAE学HLS系列-高亚军(复合数据类型)
文章目录 目录 文章目录 Struct元素优化 枚举 ENUMERATED TYPE 希望能为你提供更多的创造力。 Struct元素优化 在对应的结构体变量--directive里面使用field_level或者struct_level进行优化. 4 4 4 4 4-------8 8 8 8 8 20-24; 查看波形--查看实际的分配情况 枚举 ENUMERATED …...
【mysql】WITH AS 语法详解
【mysql】WITH AS 语法详解 【一】WITH AS语法的基本结构【二】案例1【三】案例2 WITH AS 语法是MySQL中的一种临时结果集,它可以在SELECT、INSERT、UPDATE或DELETE语句中使用。通过使用WITH AS语句,可以将一个查询的结果存储在一个临时表中,…...
Rocky linux SSD安装
1. 下载ISO文件 Index of /vault/rocky/9.3/isos/x86_64/ 下载DVD iso 2.使用RUFUS制作启动盘,注意UEFI选项 Rufus - 轻松创建 USB 启动盘 3. 重启,F2进bios,选择U盘启动安装 4. 选择安装盘 5. 设置用户密码,用户名默认root 其他&#x…...
CVPR 2025 MIMO: 支持视觉指代和像素grounding 的医学视觉语言模型
CVPR 2025 | MIMO:支持视觉指代和像素对齐的医学视觉语言模型 论文信息 标题:MIMO: A medical vision language model with visual referring multimodal input and pixel grounding multimodal output作者:Yanyuan Chen, Dexuan Xu, Yu Hu…...
云计算——弹性云计算器(ECS)
弹性云服务器:ECS 概述 云计算重构了ICT系统,云计算平台厂商推出使得厂家能够主要关注应用管理而非平台管理的云平台,包含如下主要概念。 ECS(Elastic Cloud Server):即弹性云服务器,是云计算…...
 
云启出海,智联未来|阿里云网络「企业出海」系列客户沙龙上海站圆满落地
借阿里云中企出海大会的东风,以**「云启出海,智联未来|打造安全可靠的出海云网络引擎」为主题的阿里云企业出海客户沙龙云网络&安全专场于5.28日下午在上海顺利举办,现场吸引了来自携程、小红书、米哈游、哔哩哔哩、波克城市、…...
 
聊聊 Pulsar:Producer 源码解析
一、前言 Apache Pulsar 是一个企业级的开源分布式消息传递平台,以其高性能、可扩展性和存储计算分离架构在消息队列和流处理领域独树一帜。在 Pulsar 的核心架构中,Producer(生产者) 是连接客户端应用与消息队列的第一步。生产者…...
 
用docker来安装部署freeswitch记录
今天刚才测试一个callcenter的项目,所以尝试安装freeswitch 1、使用轩辕镜像 - 中国开发者首选的专业 Docker 镜像加速服务平台 编辑下面/etc/docker/daemon.json文件为 {"registry-mirrors": ["https://docker.xuanyuan.me"] }同时可以进入轩…...
 
sipsak:SIP瑞士军刀!全参数详细教程!Kali Linux教程!
简介 sipsak 是一个面向会话初始协议 (SIP) 应用程序开发人员和管理员的小型命令行工具。它可以用于对 SIP 应用程序和设备进行一些简单的测试。 sipsak 是一款 SIP 压力和诊断实用程序。它通过 sip-uri 向服务器发送 SIP 请求,并检查收到的响应。它以以下模式之一…...
 
算法:模拟
1.替换所有的问号 1576. 替换所有的问号 - 力扣(LeetCode) 遍历字符串:通过外层循环逐一检查每个字符。遇到 ? 时处理: 内层循环遍历小写字母(a 到 z)。对每个字母检查是否满足: 与…...
 
Linux 中如何提取压缩文件 ?
Linux 是一种流行的开源操作系统,它提供了许多工具来管理、压缩和解压缩文件。压缩文件有助于节省存储空间,使数据传输更快。本指南将向您展示如何在 Linux 中提取不同类型的压缩文件。 1. Unpacking ZIP Files ZIP 文件是非常常见的,要在 …...
腾讯云V3签名
想要接入腾讯云的Api,必然先按其文档计算出所要求的签名。 之前也调用过腾讯云的接口,但总是卡在签名这一步,最后放弃选择SDK,这次终于自己代码实现。 可能腾讯云翻新了接口文档,现在阅读起来,清晰了很多&…...
日常一水C
多态 言简意赅:就是一个对象面对同一事件时做出的不同反应 而之前的继承中说过,当子类和父类的函数名相同时,会隐藏父类的同名函数转而调用子类的同名函数,如果要调用父类的同名函数,那么就需要对父类进行引用&#…...
