剑指offer第七、八天
1.矩阵中的路径
class Solution {int n, m;int dx[4]{ 1,-1,0,0 };int dy[4]{ 0,0,1,-1 };bool dfs(int i, int j, vector<vector<char> >mat,vector<vector<bool> >vis, int u, const char* str){if (u == strlen(str)-1){//刚开始这里我用的是strlen(str),但是可能会有一种情况,需要矩阵中所有的元素去匹配,这样的话,我的方法就是错误的了,所以改成这样return mat[i][j] == str[u];}if (mat[i][j] != str[u])return false;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 && !vis[x][y]){vis[x][y] = true;if (dfs(x, y, mat,vis, u + 1, str))return true;vis[x][y] = false;}}return false;}
public:bool hasPath(const char* matrix, int rows, int cols, const char* str){n = rows, m = cols;int idx = 0;vector<vector<char> >mat(n, vector<char>(m));vector<vector<bool> >vis(n, vector<bool>(m));;for (int i = 0; i < n; ++i){for (int j = 0; j < m; ++j){mat[i][j] = matrix[idx++];}}for (int i = 0; i < n; ++i){for (int j = 0; j < m; ++j){vis[i][j] = true;if (dfs(i, j, mat,vis, 0, str))return true;vis[i][j] = false;}}return false;}
};
2.机器人的运动路径
class Solution {
public://记录遍历的四个方向int dir[4][2] = {{-1, 0}, {1, 0}, {0, -1}, {0, 1}};//记录答案int res = 0;//计算一个数字的每个数之和int cal(int n){int sum = 0;//连除法算出每一位while(n){sum += (n % 10);n /= 10;}return sum;}//深度优先搜索dfsvoid dfs(int i, int j, int rows, int cols, int threshold, vector<vector<bool> >& vis){//越界或者已经访问过if(i < 0 || i >= rows || j < 0 || j >= cols || !vis[i][j])return;//行列和数字相加大于threshold,不可取if(cal(i) + cal(j) > threshold)return;res += 1;//标记经过的位置vis[i][j] = false;//上下左右四个方向搜索for(int k = 0; k < 4; k++)dfs(i + dir[k][0], j + dir[k][1], rows, cols, threshold, vis);}int movingCount(int threshold, int rows, int cols) {//判断特殊情况if(threshold <= 0)return 1;//标记某个格子没有被访问过vector<vector<bool> > vis(rows, vector<bool>(cols, true));dfs(0, 0, rows, cols, threshold, vis);return res;}
};
3.数组中重复的数字
class Solution {int cnt[10010]{};
public:int duplicate(vector<int>& numbers) {// write code herefor(int&x:numbers)if(cnt[x])return x;else cnt[x]++;return -1;}
};
4.数组中的逆序对
class Solution {//使用归并排序的方法 来求解int n,temp[100010];const int mod = 1000000007;int merge_sort(vector<int>&nums,int l,int r){if(l>=r)return 0;int mid = l+r>>1;int ans = (merge_sort(nums,l,mid) + merge_sort(nums,mid+1,r))%mod;int i = l,j = mid+1,idx = 0;while(i<=mid&&j<=r){if(nums[i]<=nums[j]){temp[idx++] = nums[i++];}else{ans = (ans + mid-i+1)%mod;temp[idx++] = nums[j++];}}while(i<=mid)temp[idx++] = nums[i++];while(j<=r)temp[idx++] = nums[j++];for(i =l,j = 0;i<=r;++i,++j)nums[i] = temp[j];return ans%mod;}
public:int InversePairs(vector<int>& nums) {// write code heren = nums.size();return merge_sort(nums,0,n-1);}
};
5.最小的k个数
class Solution {
public:vector<int> GetLeastNumbers_Solution(vector<int>& input, int k) {// write code herepriority_queue<int,vector<int>,greater<int> >pq;for(int&x:input)pq.push(x);vector<int>ans;while(k--){ans.push_back(pq.top());pq.pop();}return ans;}
};
6.数据流中的中位数
直接模拟
class Solution {
public:void Insert(int num) {result.push_back(num);n++;}double GetMedian() { sort(result.begin(),result.end());if(n%2){return 1.0 * result[n/2];}else{int l = n/2;return (result[l]+result[l-1])/2.0;}}
private:vector<int>result;int n;
};
7.不用加减乘除作加法
class Solution {public:int Add(int num1, int num2) {return num2 ? Add(num1 ^ num2, (num1 & num2) << 1) : num1;}
};
8.二进制中1的个数
#include <bits/stdc++.h>using namespace std;int main()
{int x;cin>>x;int cnt = 0;while(x){cnt++;x = x&(x-1);}cout<<cnt<<'\n';return 0;
}
9数值的整数次方
class Solution {//快速幂double quickpow(double a,int n){double ans = 1.0;for(;n;n>>=1){if(n&1){ans *= a;}a = a * a; }return ans;}
public:double Power(double base, int exponent) {int p = abs(exponent);if(exponent<0){return 1.0/quickpow(base,p);}else{return quickpow(base,p);}}
};
相关文章:
剑指offer第七、八天
1.矩阵中的路径 class Solution {int n, m;int dx[4]{ 1,-1,0,0 };int dy[4]{ 0,0,1,-1 };bool dfs(int i, int j, vector<vector<char> >mat,vector<vector<bool> >vis, int u, const char* str){if (u strlen(str)-1){//刚开始这里我用的是strlen(…...
有哪些常见的方法可以评估中断处理能力?
以下是一些常见的评估中断处理能力的方法: 基准测试(Benchmarking) 定义和原理:基准测试是通过运行一系列标准化的测试程序来衡量系统性能的方法。对于中断处理能力评估,可以使用专门设计的中断基准测试软件。这些软件会模拟各种中断场景,如不同频率、不同优先级的中断请…...

Android GPU纹理数据拷贝
在 Android 开发中读取纹理数据有以下几种方法: glReadPixelsImageReaderPBO(Pixel BufferObject) HardwareBuffer 1. glReadPixels glReadPixels 是 OpenGL ES 的 API,通常用于从帧缓冲区中读取像素数据,OpenGL ES…...
浏览器端直播推流实现——系统篇
浏览器端用vue3.5.12写,服务器端用php8.2+swoole5.1.4+thinkphp8写,流媒体服务器使用nginx-rtmp模块,拉流App端用uniapp(其他端各自实现吧,这里以App端为例) 操作系统基于opencloudos8,还用到了ffmpeg,该安装就安装,这里不啰嗦安装步骤 以下是vue的代码,比较简陋,各…...

HDFS和HBase跨集群数据迁移 源码
HDFS集群间数据迁移(hadoop distcp) hadoop distcp \ -pb \ hdfs://XX.14.36.205:8020/user/hive/warehouse/dp_fk_tmp.db/ph_cash_order \ hdfs://XX.18.32.21:8020/user/hive/warehouse/dp_fksx_mart.db/HBase集群间数据(hbase ExportSnap…...

opencv实时弯道检测
项目源码获取方式见文章末尾! 600多个深度学习项目资料,快来加入社群一起学习吧。 《------往期经典推荐------》 项目名称 1.【基于CNN-RNN的影像报告生成】 2.【卫星图像道路检测DeepLabV3Plus模型】 3.【GAN模型实现二次元头像生成】 4.【CNN模型实现…...

计算机网络综合题
IP数据报的划分 CRC差错检测 冗余码的计算 因此,余数是1110,传输的数为11010110111110。在传输过程中最后两位变成o,接收端能够发现,因为11010110111110除以10011余数不为0。 子网划分 暴力求解法 (定长子网划分大量…...

【ARM Linux 系统稳定性分析入门及渐进 1.2 -- Crash 工具依赖内容】
请阅读:【Linux 维测及Crash使用专栏】 文章目录 Prerequisites1. 内核对象文件2. 内存镜像3. 平台处理器类型4. Linux 内核版本 Prerequisites crash 工具需要依赖下面的内容: 1. 内核对象文件 vmlinux 文件:需要一个 vmlinux 内核对象文件ÿ…...

「C/C++」C++标准库 之 #include<exception> 异常处理库
✨博客主页何曾参静谧的博客📌文章专栏「C/C」C/C程序设计📚全部专栏「VS」Visual Studio「C/C」C/C程序设计「UG/NX」BlockUI集合「Win」Windows程序设计「DSA」数据结构与算法「UG/NX」NX二次开发「QT」QT5程序设计「File」数据文件格式「PK」Parasoli…...
YOLOv7-0.1部分代码阅读笔记-experimental.py
experimental.py models\experimental.py 目录 experimental.py 1.所需的库和模块 2.class CrossConv(nn.Module): 3.class Sum(nn.Module): 4.class MixConv2d(nn.Module): 5.class Ensemble(nn.ModuleList): 6.def attempt_load(weights, map_locationNone): 1…...

【大数据学习 | kafka】简述kafka的消费者consumer
1. 消费者的结构 能够在kafka中拉取数据进行消费的组件或者程序都叫做消费者。 这里面要涉及到一个动作叫做拉取。 首先我们要知道kafka这个消息队列主要的功能就是起到缓冲的作用,比如flume采集数据然后交给spark或者flink进行计算分析,但是flume采用的…...
系统架构设计师论文:论湖仓一体架构及其应用
试题四 论湖仓一体架构及其应用 随着5G、大数据、人工智能、物联网等技术的不断成熟,各行各业的业务场景日益复杂,企业数据呈现出大规模、多样性的特点,特别是非结构化数据呈现出爆发式增长趋势。在这一背景下,企业数据管理不再局限于传统的结构化 OLTP (On-Line Transact…...

电磁兼容(EMC):GB 4343.1喀呖声 详解
目录 1. 喀呖声的危害 2. 喀呖声 Click定义 3. 中频参考电平 4. 开关操作 5. 最小观察时间 6. 喀呖声率 7. 喀呖声限值 8. 上四分位法 1. 喀呖声的危害 喀呖声作为一种电压骚扰,其危害主要体现在以下几个方面: 对电子设备的干扰:喀呖…...
纯血鸿蒙Native层支持说明
本文所有描述均参考鸿蒙官方文档:传送门 1.对C库的支持 C标准函数库在C语言程序设计中,提供符合标准的头文件,以及常用的库函数实现(如I/O输入输出和字符串控制)。 HarmonyOS采用musl作为C标准库,musl库…...

learn C++ NO.31——类型转换
C语言中的类型转换 在C语言中,当赋值符号两边的类型不匹配的时候,或者是形参类型和实参类型不匹配时,返回值类型与接受返回值类型不匹配时,都会需要类型转换。C语言的类型转换有两种:显示类型转换和隐式类型转换。 显…...

重学 Android 自定义 View 系列(三):自定义步数进度条
前言 本篇文章主要是实现仿QQ步数View,很老的一个View了,但技术永不落后,开搂! 最终效果如下: 1. 结构分析 QQStepView 主要由三个元素组成: 显示一个圆环进度条,通过外环和内环的角度变化来…...

海南华志亿星电子商务有限公司赋能抖音商家成长
在当今瞬息万变的电商时代,抖音凭借其短视频与直播电商的独特模式,迅速崛起并引领潮流。在这场电商变革中,海南华志亿星电子商务有限公司以其卓越的服务质量和创新的运营模式,在抖音电商领域大放异彩,成为众多商家的首…...

数据结构-并查集专题(1)
一、前言 因为要开始准备年底的校赛和明年年初的ACM、蓝桥杯、天梯赛,于是开始按专题梳理一下对应的知识点,先从简单入门又值得记录的内容开始,并查集首当其冲。 二、我的模板 虽然说是借用了jiangly鸽鸽的板子,但是自己也小做…...

共享汽车管理新纪元:SpringBoot框架应用
4系统概要设计 4.1概述 本系统采用B/S结构(Browser/Server,浏览器/服务器结构)和基于Web服务两种模式,是一个适用于Internet环境下的模型结构。只要用户能连上Internet,便可以在任何时间、任何地点使用。系统工作原理图如图4-1所示: 图4-1系统工作原理…...
道可云人工智能元宇宙每日资讯|《中国生成式人工智能应用与实践展望》白皮书发布
道可云元宇宙每日简报(2024年11月6日)讯,今日元宇宙新鲜事有: 《重庆市“机器人”应用行动计划(2024—2027年)》发布 近日,重庆市经济和信息化委员会、重庆市教育委员会等八部门印发《重庆市“…...

观成科技:隐蔽隧道工具Ligolo-ng加密流量分析
1.工具介绍 Ligolo-ng是一款由go编写的高效隧道工具,该工具基于TUN接口实现其功能,利用反向TCP/TLS连接建立一条隐蔽的通信信道,支持使用Let’s Encrypt自动生成证书。Ligolo-ng的通信隐蔽性体现在其支持多种连接方式,适应复杂网…...

多云管理“拦路虎”:深入解析网络互联、身份同步与成本可视化的技术复杂度
一、引言:多云环境的技术复杂性本质 企业采用多云策略已从技术选型升维至生存刚需。当业务系统分散部署在多个云平台时,基础设施的技术债呈现指数级积累。网络连接、身份认证、成本管理这三大核心挑战相互嵌套:跨云网络构建数据…...

《从零掌握MIPI CSI-2: 协议精解与FPGA摄像头开发实战》-- CSI-2 协议详细解析 (一)
CSI-2 协议详细解析 (一) 1. CSI-2层定义(CSI-2 Layer Definitions) 分层结构 :CSI-2协议分为6层: 物理层(PHY Layer) : 定义电气特性、时钟机制和传输介质(导线&#…...

蓝牙 BLE 扫描面试题大全(2):进阶面试题与实战演练
前文覆盖了 BLE 扫描的基础概念与经典问题蓝牙 BLE 扫描面试题大全(1):从基础到实战的深度解析-CSDN博客,但实际面试中,企业更关注候选人对复杂场景的应对能力(如多设备并发扫描、低功耗与高发现率的平衡)和前沿技术的…...

零基础在实践中学习网络安全-皮卡丘靶场(第九期-Unsafe Fileupload模块)(yakit方式)
本期内容并不是很难,相信大家会学的很愉快,当然对于有后端基础的朋友来说,本期内容更加容易了解,当然没有基础的也别担心,本期内容会详细解释有关内容 本期用到的软件:yakit(因为经过之前好多期…...

技术栈RabbitMq的介绍和使用
目录 1. 什么是消息队列?2. 消息队列的优点3. RabbitMQ 消息队列概述4. RabbitMQ 安装5. Exchange 四种类型5.1 direct 精准匹配5.2 fanout 广播5.3 topic 正则匹配 6. RabbitMQ 队列模式6.1 简单队列模式6.2 工作队列模式6.3 发布/订阅模式6.4 路由模式6.5 主题模式…...

面向无人机海岸带生态系统监测的语义分割基准数据集
描述:海岸带生态系统的监测是维护生态平衡和可持续发展的重要任务。语义分割技术在遥感影像中的应用为海岸带生态系统的精准监测提供了有效手段。然而,目前该领域仍面临一个挑战,即缺乏公开的专门面向海岸带生态系统的语义分割基准数据集。受…...

在 Spring Boot 中使用 JSP
jsp? 好多年没用了。重新整一下 还费了点时间,记录一下。 项目结构: pom: <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://ww…...
提升移动端网页调试效率:WebDebugX 与常见工具组合实践
在日常移动端开发中,网页调试始终是一个高频但又极具挑战的环节。尤其在面对 iOS 与 Android 的混合技术栈、各种设备差异化行为时,开发者迫切需要一套高效、可靠且跨平台的调试方案。过去,我们或多或少使用过 Chrome DevTools、Remote Debug…...
MFE(微前端) Module Federation:Webpack.config.js文件中每个属性的含义解释
以Module Federation 插件详为例,Webpack.config.js它可能的配置和含义如下: 前言 Module Federation 的Webpack.config.js核心配置包括: name filename(定义应用标识) remotes(引用远程模块࿰…...