9.20(54. 螺旋矩阵 71. 简化路径)

2024-03-30 01:32

本文主要是介绍9.20(54. 螺旋矩阵 71. 简化路径),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

54. 螺旋矩阵

本题比较简单,详情见代码

程序代码:(完整版)
#include <iostream>
#include<vector>
#include<algorithm>
#include<string>
//54.螺旋矩阵
using namespace std;class Solution {
public:vector<int> spiralOrder(vector<vector<int>>& matrix) {vector<int> result;//结果都存放在这里面int m = matrix.size();if(m==0) return result;//就返回空的int n = matrix[0].size();	int i1 = 0, i2 = m - 1, j1 = 0, j2 = n - 1;//这个标志了四个边界while (i1<i2&&j1<j2) {int j = j1;while (j < j2) { result.push_back(matrix[i1][j]); j++; }int i = i1;while (i < i2) { result.push_back(matrix[i][j2]); i++; }j = j2;//初始化数值while (j > j1) { result.push_back(matrix[i2][j]); j--; }i = i2;while (i > i1) { result.push_back(matrix[i][j1]); i--; }i1++, j1++, i2--, j2--;//向中心靠近}if (i1 == i2) {int j = j1;while (j <= j2) { result.push_back(matrix[i1][j]); j++; }}else if (j1 == j2) {int i = i1;while (i <= i2) { result.push_back(matrix[i][j1]); i++; }}else if(i1 == i2&& j1 == j2)result.push_back(matrix[i1][j1]);return result;}
};int main()
{Solution bb;int m,n;cin >> m >> n;vector<vector<int>> matrix;for (int i = 0; i < m; i++) {vector<int> vec;for (int j = 0; j < n; j++) {int tmp;cin >> tmp;vec.push_back(tmp);}matrix.push_back(vec);}vector<int> result = bb.spiralOrder(matrix);for (int e : result) {cout<<e<<" ";}return 0;
}

测试时出现了一个错误,就是没有针对空集的特殊处理。
加上就可以了。

71. 简化路径

本题运行不成功,不知道为什么,感觉题目中的错误例子举的也不好

程序代码:
#include <iostream>
#include<vector>
#include<algorithm>
#include<string>
#include<stack>//引入数据结构堆栈
//71、这个题目是一个次序解决的问题
using namespace std;class Solution {
public:string simplifyPath(string path) {int i = 0;//控制字符串长度的变量stack<int> stack;string result = "";if (path == "/..")return result;while (i<path.size()) {if (stack.size() == 0) stack.push(path[i++]);else if (path[i] == '/'&&stack.top() == '/') i++;else if (path[i] != '.'&&stack.top() == '.') {while (stack.top() != '/')stack.pop();stack.pop();//最后还要将本身的那个‘/’pop出去}else if (path[i] == '.'&&stack.top() == '.') {i++;int count = 0;while (1) {if (stack.top() == '/') count++;stack.pop();if (count == 2||stack.size()==0)break;}}else stack.push(path[i++]);}if (stack.size()!=1&&stack.top() == '/') stack.pop();int n = stack.size();//堆栈的尺寸while (stack.size() != 0) {result.insert(result.begin(),stack.top());//可以插入字符,表示在最前面插入字符stack.pop();}return result;}
};int main()
{Solution bb;string path;cin >> path;string result = bb.simplifyPath(path);cout<<result<<endl;return 0;
}

样例通过率是226/252。我也不知道是为啥了,给出来的反例都很奇怪

参考程序链接:
https://blog.csdn.net/qq_17550379/article/details/80802176

这篇关于9.20(54. 螺旋矩阵 71. 简化路径)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/860171

相关文章

SpringBoot项目配置logback-spring.xml屏蔽特定路径的日志

《SpringBoot项目配置logback-spring.xml屏蔽特定路径的日志》在SpringBoot项目中,使用logback-spring.xml配置屏蔽特定路径的日志有两种常用方式,文中的... 目录方案一:基础配置(直接关闭目标路径日志)方案二:结合 Spring Profile 按环境屏蔽关

VSCode设置python SDK路径的实现步骤

《VSCode设置pythonSDK路径的实现步骤》本文主要介绍了VSCode设置pythonSDK路径的实现步骤,包括命令面板切换、settings.json配置、环境变量及虚拟环境处理,具有一定... 目录一、通过命令面板快速切换(推荐方法)二、通过 settings.json 配置(项目级/全局)三、

使用Python和Matplotlib实现可视化字体轮廓(从路径数据到矢量图形)

《使用Python和Matplotlib实现可视化字体轮廓(从路径数据到矢量图形)》字体设计和矢量图形处理是编程中一个有趣且实用的领域,通过Python的matplotlib库,我们可以轻松将字体轮廓... 目录背景知识字体轮廓的表示实现步骤1. 安装依赖库2. 准备数据3. 解析路径指令4. 绘制图形关键

C/C++中OpenCV 矩阵运算的实现

《C/C++中OpenCV矩阵运算的实现》本文主要介绍了C/C++中OpenCV矩阵运算的实现,包括基本算术运算(标量与矩阵)、矩阵乘法、转置、逆矩阵、行列式、迹、范数等操作,感兴趣的可以了解一下... 目录矩阵的创建与初始化创建矩阵访问矩阵元素基本的算术运算 ➕➖✖️➗矩阵与标量运算矩阵与矩阵运算 (逐元

如何更改pycharm缓存路径和虚拟内存分页文件位置(c盘爆红)

《如何更改pycharm缓存路径和虚拟内存分页文件位置(c盘爆红)》:本文主要介绍如何更改pycharm缓存路径和虚拟内存分页文件位置(c盘爆红)问题,具有很好的参考价值,希望对大家有所帮助,如有... 目录先在你打算存放的地方建四个文件夹更改这四个路径就可以修改默认虚拟内存分页js文件的位置接下来从高级-

一文详解如何查看本地MySQL的安装路径

《一文详解如何查看本地MySQL的安装路径》本地安装MySQL对于初学者或者开发人员来说是一项基础技能,但在安装过程中可能会遇到各种问题,:本文主要介绍如何查看本地MySQL安装路径的相关资料,需... 目录1. 如何查看本地mysql的安装路径1.1. 方法1:通过查询本地服务1.2. 方法2:通过MyS

Python如何调用指定路径的模块

《Python如何调用指定路径的模块》要在Python中调用指定路径的模块,可以使用sys.path.append,importlib.util.spec_from_file_location和exe... 目录一、sys.path.append() 方法1. 方法简介2. 使用示例3. 注意事项二、imp

Java 中的 @SneakyThrows 注解使用方法(简化异常处理的利与弊)

《Java中的@SneakyThrows注解使用方法(简化异常处理的利与弊)》为了简化异常处理,Lombok提供了一个强大的注解@SneakyThrows,本文将详细介绍@SneakyThro... 目录1. @SneakyThrows 简介 1.1 什么是 Lombok?2. @SneakyThrows

使用Python实现矢量路径的压缩、解压与可视化

《使用Python实现矢量路径的压缩、解压与可视化》在图形设计和Web开发中,矢量路径数据的高效存储与传输至关重要,本文将通过一个Python示例,展示如何将复杂的矢量路径命令序列压缩为JSON格式,... 目录引言核心功能概述1. 路径命令解析2. 路径数据压缩3. 路径数据解压4. 可视化代码实现详解1

Linux修改pip和conda缓存路径的几种方法

《Linux修改pip和conda缓存路径的几种方法》在Python生态中,pip和conda是两种常见的软件包管理工具,它们在安装、更新和卸载软件包时都会使用缓存来提高效率,适当地修改它们的缓存路径... 目录一、pip 和 conda 的缓存机制1. pip 的缓存机制默认缓存路径2. conda 的缓