C/C++每日一练(20230429)

news2024/11/29 10:31:37

目录

1. 螺旋矩阵  🌟🌟

2. 戳气球  🌟🌟🌟

3. 实现五则运算  🌟

🌟 每日一练刷题专栏 🌟

Golang每日一练 专栏

Python每日一练 专栏

C/C++每日一练 专栏

Java每日一练 专栏


1. 螺旋矩阵

给你一个 m 行 n 列的矩阵 matrix ,请按照 顺时针螺旋顺序 ,返回矩阵中的所有元素。

示例 1:

输入:matrix = [[1,2,3],[4,5,6],[7,8,9]]
输出:[1,2,3,6,9,8,7,4,5]

示例 2:

输入:matrix = [[1,2,3,4],[5,6,7,8],[9,10,11,12]]
输出:[1,2,3,4,8,12,11,10,9,5,6,7]

提示:

  • m == matrix.length
  • n == matrix[i].length
  • 1 <= m, n <= 10
  • -100 <= matrix[i][j] <= 100

以下程序实现了这一功能,请你填补空白处内容:

```c++
#include <bits/stdc++.h>
using namespace std;
class Solution
{
public:
    vector<int> spiralOrder(vector<vector<int>> &matrix)
    {
        vector<int> ans;
        if (matrix.size() == 0)
            return ans;
        int cir = 0;
        int row = matrix.size();
        int col = matrix[0].size();
        int max_cir = int(min(matrix.size(), matrix[0].size()) + 1) / 2;
        for (; cir < max_cir; cir++)
        {
            for (int i = cir; i < col - cir; i++)
            {
                ans.push_back(matrix[cir][i]);
            }
            for (int i = cir + 1; i < row - cir; i++)
            {
                ans.push_back(matrix[i][col - 1 - cir]);
            }
            __________________;
            for (int i = row - 2 - cir; i > cir && (col - 1 - cir != cir); i--)
            {
                ans.push_back(matrix[i][cir]);
            }
        }
        return ans;
    }
};
```

出处:

https://edu.csdn.net/practice/26819119

代码:

#include <bits/stdc++.h>
using namespace std;
class Solution
{
public:
    vector<int> spiralOrder(vector<vector<int>> &matrix)
    {
        vector<int> ans;
        if (matrix.size() == 0)
            return ans;
        int cir = 0;
        int row = matrix.size();
        int col = matrix[0].size();
        int max_cir = int(min(matrix.size(), matrix[0].size()) + 1) / 2;
        for (; cir < max_cir; cir++)
        {
            for (int i = cir; i < col - cir; i++)
            {
                ans.push_back(matrix[cir][i]);
            }
            for (int i = cir + 1; i < row - cir; i++)
            {
                ans.push_back(matrix[i][col - 1 - cir]);
            }
			for (int i = col - 2 - cir; i >= cir && (row - 1 - cir != cir); i--)
			{
			    ans.push_back(matrix[row - cir - 1][i]);
			}
            for (int i = row - 2 - cir; i > cir && (col - 1 - cir != cir); i--)
            {
                ans.push_back(matrix[i][cir]);
            }
        }
        return ans;
    }
};

string vectorToString(vector<int> vect) {
    stringstream ss;
	ss << "[";
    for (int i = 0; i < (int)vect.size(); i++)
	{
        ss << vect[i];
        if (i < (int)vect.size() - 1)
        	ss << ",";
    }
    ss << "]";
    return ss.str();
}

int main()
{
	Solution s;
	vector<vector<int>> matrix = {{1,2,3},{4,5,6},{7,8,9}};
	cout << vectorToString(s.spiralOrder(matrix)) << endl;
	matrix = {{1,2,3,4},{5,6,7,8},{9,10,11,12}};
	cout << vectorToString(s.spiralOrder(matrix)) << endl;
	return 0;
}

输出:

[1,2,3,6,9,8,7,4,5]
[1,2,3,4,8,12,11,10,9,5,6,7]


2. 戳气球

有 n 个气球,编号为0 到 n - 1,每个气球上都标有一个数字,这些数字存在数组 nums 中。

现在要求你戳破所有的气球。戳破第 i 个气球,你可以获得 nums[i - 1] * nums[i] * nums[i + 1] 枚硬币。 这里的 i - 1 和 i + 1 代表和 i 相邻的两个气球的序号。如果 i - 1或 i + 1 超出了数组的边界,那么就当它是一个数字为 1 的气球。

求所能获得硬币的最大数量。

示例 1:

输入:nums = [3,1,5,8]
输出:167
解释:
nums = [3,1,5,8] --> [3,5,8] --> [3,8] --> [8] --> []
coins =  3*1*5    +   3*5*8   +  1*3*8  + 1*8*1 = 167

示例 2:

输入:nums = [1,5]
输出:10

提示:

  • n == nums.length
  • 1 <= n <= 500
  • 0 <= nums[i] <= 100

出处:

https://edu.csdn.net/practice/26819120

代码:

#include <bits/stdc++.h>
using namespace std;
class Solution
{
public:
    vector<int> spiralOrder(vector<vector<int>> &matrix)
    {
        vector<int> ans;
        if (matrix.size() == 0)
            return ans;
        int cir = 0;
        int row = matrix.size();
        int col = matrix[0].size();
        int max_cir = int(min(matrix.size(), matrix[0].size()) + 1) / 2;
        for (; cir < max_cir; cir++)
        {
            for (int i = cir; i < col - cir; i++)
            {
                ans.push_back(matrix[cir][i]);
            }
            for (int i = cir + 1; i < row - cir; i++)
            {
                ans.push_back(matrix[i][col - 1 - cir]);
            }
			for (int i = col - 2 - cir; i >= cir && (row - 1 - cir != cir); i--)
			{
			    ans.push_back(matrix[row - cir - 1][i]);
			}
            for (int i = row - 2 - cir; i > cir && (col - 1 - cir != cir); i--)
            {
                ans.push_back(matrix[i][cir]);
            }
        }
        return ans;
    }
};

string vectorToString(vector<int> vect) {
    stringstream ss;
	ss << "[";
    for (int i = 0; i < (int)vect.size(); i++)
	{
        ss << vect[i];
        if (i < (int)vect.size() - 1)
        	ss << ",";
    }
    ss << "]";
    return ss.str();
}

int main()
{
	Solution s;
	vector<vector<int>> matrix = {{1,2,3},{4,5,6},{7,8,9}};
	cout << vectorToString(s.spiralOrder(matrix)) << endl;
	matrix = {{1,2,3,4},{5,6,7,8},{9,10,11,12}};
	cout << vectorToString(s.spiralOrder(matrix)) << endl;
	return 0;
}

输出:

[1,2,3,6,9,8,7,4,5]
[1,2,3,4,8,12,11,10,9,5,6,7]


3. 实现五则运算

设计一个可以完成任意五则运算(加法/减法/乘法/除法/取余)的程序。除法按照计算机中整型相除来计算。 输入格式 多行输入,每输入一行数据对应输出一行。 每行输入格式为 a # b,其中 #∈{+,−,∗,/,%} a,b均为自然数 输出格式 每行输出对应的计算结果; 当运算为除法/取余的时候,如果除数为 0 ,输出 WA 。

输入样例

2+2
4*5
6/7
4%3
4%0

输出样例

4
20
0
1
WA

以下程序实现了这一功能,请你补全空白处内容:

```c++
#include <stdio.h>
int main()
{
    int a;
    int b;
    char operation;
    int num;
    while (scanf("%d", &a) != EOF)
    {
        scanf("%c", &operation);
        scanf("%d", &b);
        if (operation == '+')
        {
            num = a + b;
            printf("%d\n", num);
        }
        else if (operation == '-')
        {
            num = a - b;
            printf("%d\n", num);
        }
        else if (operation == '*')
        {
            num = a * b;
            printf("%d\n", num);
        }
        _________________________;
        else
        {
            printf("%s\n", "WA");
        }
    }
    return 0;
}
```

出处:

https://edu.csdn.net/practice/26819121

代码:

#include <stdio.h>
int main()
{
    int a;
    int b;
    char operation;
    int num;
    while (scanf("%d", &a) != EOF)
    {
        scanf("%c", &operation);
        scanf("%d", &b);
        if (operation == '+')
        {
            num = a + b;
            printf("%d\n", num);
        }
        else if (operation == '-')
        {
            num = a - b;
            printf("%d\n", num);
        }
        else if (operation == '*')
        {
            num = a * b;
            printf("%d\n", num);
        }
		else if (operation == '/' && b != 0)
		{
		    num = a / b;
		    printf("%d\n", num);
		}
		else if (operation == '%' && b != 0)
		{
		    num = a % b;
		    printf("%d\n", num);
		}
        else
        {
            printf("%s\n", "WA");
        }
    }
    return 0;
}

输出:


🌟 每日一练刷题专栏 🌟

持续,努力奋斗做强刷题搬运工!

👍 点赞,你的认可是我坚持的动力! 

🌟 收藏,你的青睐是我努力的方向! 

评论,你的意见是我进步的财富!  

 主页:https://hannyang.blog.csdn.net/

Golang每日一练 专栏

Python每日一练 专栏

C/C++每日一练 专栏

Java每日一练 专栏

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

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

相关文章

从0搭建Vue3组件库(十):如何搭建一个 Cli 脚手架

本篇文章将实现一个名为create-easyest脚手架的开发,只需一个命令npm init easyest就可以将整个组件库开发框架拉到本地。 创建 Cli 包 首先,我们在 packages 目录下新建 cli 目录,同执行pnpm init进行初始化,然后将包名改为create-easyest 这里需要知道的是当我们执行npm in…

layui框架实战案例(21):layui上传的哪些事(layui.upload组件、 file文件域、php后台上传)

上传的哪些事 一、核心方法与基础参数选项二、使用upload组件1.调用layui.upload2.文件上传进度条3.弹出进度条4.完整核心代码5.效果预览6.后台上传代码7.附带参数data 一、核心方法与基础参数选项 upload.render({elem: #uploadlicense//指向容器选择器, url: ?mIndex&ai…

Python每日一练(20230429)

目录 1. 地下城游戏 &#x1f31f;&#x1f31f;&#x1f31f; 2. 杨辉三角 II &#x1f31f; 3. 旋转数组 &#x1f31f;&#x1f31f; &#x1f31f; 每日一练刷题专栏 &#x1f31f; Golang每日一练 专栏 Python每日一练 专栏 C/C每日一练 专栏 Java每日一练 专栏…

HCIA-RS实验-路由配置-静态路由缺省路由(2)

接上文HCIA-RS实验-路由配置-静态路由&缺省路由 继续完成缺省路由&#xff1b;其他原截图就不再一一截图&#xff0c;有需要往回看一篇。 关闭上一篇的接口shutdown&#xff08;重新启动&#xff09; 上一篇在R2关闭的接口2 需要重新启动&#xff0c;输入 undo shutdown…

React--》Redux Toolkit的使用讲解

目录 Redux Toolkit redux toolkit的基本使用 RTK代码模块化 RTK QUERY的使用 useQuery参数 Redux Toolkit Redux Toolkit是Redux的工具包&#xff0c;简称RTK&#xff0c;可以帮助我们处理使用Redux过程中的重复性工作&#xff0c;简化Redux中的各种操作&#xff0c;当然…

< 每日小技巧: 基于Vue状态的过渡动画 - Transition 和 TransitionGroup>

》基于Vue状态的过渡动画 - Transition 和 TransitionGroup &#x1f449; 一、Vue Transition 简介> Transition 和 TransitionGroup 之间的区别 &#x1f449; 二、<Transition> 组件> 触发 <Transition> 组件的场景&#xff1a;> 基于 CSS 的过渡效果&…

LeetCode:面试题 02.07. 链表相交

&#x1f34e;道阻且长&#xff0c;行则将至。&#x1f353; &#x1f33b;算法&#xff0c;不如说它是一种思考方式&#x1f340; 算法专栏&#xff1a; &#x1f449;&#x1f3fb;123 题解目录 一、&#x1f331;[面试题 02.07. 链表相交](https://leetcode.cn/problems/in…

Python可视化学习——使用JSON进行数据转换、pyecharts模块调用以及可视化案例的介绍(可视化案例数据暂无),柱状图及动态柱状图的构建

数据可视化 可视化效果一&#xff1a;2020年印美日新冠累计确诊人数 2020年是新冠疫情爆发的一年&#xff0c;随着疫情的爆发&#xff0c;国内外确诊人数成了大家关心的热点&#xff0c;相信大家都有看过类似的疫情报告.本案例对印度美国日本三个国家确诊人数的进行了可视化处…

术数基础背诵口诀整理

物象对应 五行方位天干神兽季节气候星宿生成数脏器木东甲乙青龙春风岁八肝火南丙丁朱雀夏热荧惑七心土中戊己&#xff1f;长夏湿镇五脾金西庚辛白虎秋燥太白九肺水北壬癸玄武冬寒辰六肾 口诀&#xff1a;东方甲乙青龙木&#xff0c;南方丙丁朱雀火&#xff0c;戊己勾陈腾蛇土&…

第一章 Java基础 50 道面试题

文章目录 前言匿名内部类访问的局部变量为什么必须要用final修饰? Java基础1、jdk和jre有什么区别&#xff1f;2、final在Java中有什么作用&#xff1f;3、有常量类了为什么还要使用枚举类&#xff1f;4、为什么使用包装类&#xff1f;5、和equals的区别是什么&#xff1f;6、…

Mysql-最左前缀法则以及索引失效情况

最左前缀法则 如果索引了多列&#xff08;联合索引&#xff09;&#xff0c;要遵守最左前缀法则。最左前缀法则指的是查询从索引的最左列开始&#xff0c;并且不跳过索引中的列。如果跳跃某一列&#xff0c;索引将会部分失效(后面的字段索引失效)。 以 tb_user 表为例&#xff…

前端面试题(持续更新中)

【1】null和undefined的区别 同&#xff1a; 1.都是js的基本类型&#xff0c;保存在栈中&#xff0c;表示“无、没有”的意思。 2.if语句中的null和undefined都是false。 var a undefined var b null if (!a) {console.log(undefined is false); } if (!b) {console.log(null…

YOLOv7如何提高目标检测的速度和精度,基于模型结构、数据增强提高目标检测速度

目录 一、基于模型结构的方法1、多尺度训练和测试2、更细的特征图3、重新设计的损失函数 二、基于数据增强的方法1、随机缩放和裁剪2、随机旋转和翻转3、随机亮度和对比度调整4、随机噪声和模糊处理 三、实验结果与分析1、数据集和实验设置2、实验结果的分析和比较 大家好&…

【VM服务管家】VM4.0软件使用_1.1 环境配置类

目录 1.1.1 驱动配置&#xff1a;图像后台切换但前端界面不变的解决方法1.1.2 驱动缺失&#xff1a;格式化工具打开后消失的解决方法1.1.3 环境配置&#xff1a;VM试用版本激活报错的解决方法1.1.4 模块数限制&#xff1a;修改VM最大模块数量1.1.5 开机自启动&#xff1a;VM运行…

【VM服务管家】VM4.0平台SDK_2.3 控件嵌入类

目录 2.3.1 渲染结果&#xff1a;通过绑定流程或模块获取渲染结果的方法2.3.2 渲染控件&#xff1a;渲染控件加载本地图像的方法2.3.3 渲染控件&#xff1a;渲染控件上自定义图形的方法2.3.4 参数控件&#xff1a;参数配置控件绑定模块的方法2.3.5 控件颜色&#xff1a;控件颜色…

【AGC】质量服务数据分析问题

【关键字】 AGC、质量、数据分析 【问题描述】 开发者反馈在应用中集成了AGC的相关服务&#xff0c;在查看平台数据时遇到了一些问题。具体如下所述&#xff1a; 我发现平台的App卸载量每个月都非常高&#xff0c;卸载量/新下载量近80%&#xff0c;很异常&#xff0c;所以想…

【VM服务管家】VM4.x算子SDK开发_3.2 公用工具类

目录 3.2.1 图像载入&#xff1a;本地图像的载入方法3.2.2 相机取流&#xff1a;相机SDK取流的方法3.2.3 输入图像&#xff1a;给算子模块输入图像数据的方法3.2.4 实时取流&#xff1a;实时取流的实现方法3.2.5 卡尺ROI&#xff1a;卡尺型ROI的生成方法3.2.6 DL算子耗时&#…

【VM服务管家】VM4.2软件使用_5.3 环境配置类

目录 1.1.1 用户权限&#xff1a;普通用户权限使用VM的方法1.1.2 脚本环境&#xff1a;联合OpenCV开发的环境配置方法1.1.3 环境配置&#xff1a;规避流程运行时卡死的方法 1.1.1 用户权限&#xff1a;普通用户权限使用VM的方法 描述 环境&#xff1a;VM4.2 现象&#xff1a;生…

JPA实战

常见 ORM 框架 **Mybatis(ibatis)&#xff1a;**一款优秀的持久层框架&#xff0c;它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息&#xff0c;将接口和 …

【深圳】IBM V3500存储维修 更换控制器故障

冠峰科技-爱科技爱分享 今天给大家分享的是深圳.福田区一个电商客户公司一台IBM Storwize v3500存储控制器故障从远程诊断 收集日志 分析结果的实际案例&#xff0c;如图所示通过存储管理口登陆进去后直接看到少了一个控制器&#xff0c; 按照惯例&#xff0c;还是得登陆到服…