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

目录

1. 二维数组找最值  🌟🌟

2. 排序  🌟

3. 二叉树展开为链表  🌟🌟

🌟 每日一练刷题专栏 🌟

Golang每日一练 专栏

Python每日一练 专栏

C/C++每日一练 专栏

Java每日一练 专栏


1. 二维数组找最值

从键盘输入m(2<=m<=6)行n(2<=n<=6)列整型数据,编程找出其中的最大值及其所在位置的行列下标值并输出。 输入格式: 在第一行输入数据的行数m和列数n的值,从第二行开始以二维数组的形式依次输入m行n列整型数据。 输出格式: 依次输出最大值及其所在位置的行列下标值,中间以逗号,分隔,最后换行。

输入样例:

3 4
1 2 3 4
8 9 7 6
5 6 7 0

输出样例:

9,1,1

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

```c++
#include <stdio.h>
int main()
{
    int a[6][6];
    int m, n;
    int i, j;
    int max;
    int indexx = 0, indexy = 0;
    scanf("%d %d", &m, &n);
    for (i = 0; i < m; i++)
    {
        for (j = 0; j < n; j++)
        {
            scanf("%d", &a[i][j]);
            if (i == 0 && j == 0)
            {
                max = a[i][j];
                indexx = 0;
                indexy = 0;
            }
            else
            {
                _____________;
            }
        }
    }
    printf("%d,%d,%d\n", max, indexx, indexy);
    return 0;
}
```

出处:

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

代码:

#include <stdio.h>
int main()
{
    int a[6][6];
    int m, n;
    int i, j;
    int max;
    int indexx = 0, indexy = 0;
    scanf("%d %d", &m, &n);
    for (i = 0; i < m; i++)
    {
        for (j = 0; j < n; j++)
        {
            scanf("%d", &a[i][j]);
            if (i == 0 && j == 0)
            {
                max = a[i][j];
                indexx = 0;
                indexy = 0;
            }
            else
            {
				if (a[i][j] > max)
				{
				    max = a[i][j];
				    indexx = i;
				    indexy = j;
				}
            }
        }
    }
    printf("%d,%d,%d\n", max, indexx, indexy);
    return 0;
}

输入输出:

3 4
1 2 3 4
8 9 7 6
5 6 7 0
9,1,1


2. 排序

由键盘上输入n个整数,请将这些数从大到小排序,然后输出排序后的数列。

输入

输入包含两行:

第一行是n(1 <= n <= 1000)。

第二行是n个整数,邻近两数之间用一个空格隔开。

输出

输出排序后的n个整数,邻近两数之间用一个空格隔开。

输入示例

5
8 2 5 1 2

输出示例

8 5 2 2 1

数据范围

输入和输出均为int范围的整数

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

```c++
#include <iostream>
using namespace std;
int main()
{
    int n, tmp;
    cin >> n;
    int *a = new int[n];
    for (int i = 0; i < n; i++)
        cin >> a[i];
    for (int i = 0; i < n - 1; i++)
    {
        for (int j = i + 1; j < n; j++)
        {
            __________________;
        }
    }
    for (int i = 0; i < n; i++)
    {
        cout << a[i];
        if (i != n - 1)
            cout << " ";
    }
    return 0;
}
```

出处:

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

代码:

#include <stdio.h>
int main()
{
    int a[6][6];
    int m, n;
    int i, j;
    int max;
    int indexx = 0, indexy = 0;
    scanf("%d %d", &m, &n);
    for (i = 0; i < m; i++)
    {
        for (j = 0; j < n; j++)
        {
            scanf("%d", &a[i][j]);
            if (i == 0 && j == 0)
            {
                max = a[i][j];
                indexx = 0;
                indexy = 0;
            }
            else
            {
				if (a[i][j] > max)
				{
				    max = a[i][j];
				    indexx = i;
				    indexy = j;
				}
            }
        }
    }
    printf("%d,%d,%d\n", max, indexx, indexy);
    return 0;
}

输出:

5
8 2 5 1 2
8 5 2 2 1


3. 二叉树展开为链表

给你二叉树的根结点 root ,请你将它展开为一个单链表:

  • 展开后的单链表应该同样使用 TreeNode ,其中 right 子指针指向链表中下一个结点,而左子指针始终为 null 。
  • 展开后的单链表应该与二叉树 先序遍历 顺序相同。

示例 1:

输入:root = [1,2,5,3,4,null,6]
输出:[1,null,2,null,3,null,4,null,5,null,6]

示例 2:

输入:root = []
输出:[]

示例 3:

输入:root = [0]
输出:[0]

提示:

  • 树中结点数在范围 [0, 2000] 内
  • -100 <= Node.val <= 100

进阶:你可以使用原地算法(O(1) 额外空间)展开这棵树吗?

出处:

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

代码:

#define null INT_MIN
#include <bits/stdc++.h>
using namespace std;

struct TreeNode
{
    int val;
    TreeNode *left;
    TreeNode *right;
    TreeNode(int x) : val(x), left(NULL), right(NULL) {}
};

class Solution
{
public:
    void rconnect(TreeNode *&node, TreeNode *pmove)
    {
        if (pmove == nullptr)
            return;
        node->right = new TreeNode(pmove->val);
        node->left = nullptr;
        node = node->right;
        rconnect(node, pmove->left);
        rconnect(node, pmove->right);
    }
    void flatten(TreeNode *root)
    {
        if (root == nullptr)
            return;
        TreeNode *head = new TreeNode(null);
        TreeNode *newroot = head;
        rconnect(head, root);
        newroot = newroot->right->right;
        root->right = newroot;
        root->left = nullptr;
    }
};

TreeNode* buildTree(vector<int>& nums)
{
    if (nums.empty()) return nullptr;
	TreeNode *root = new TreeNode(nums.front());
    queue<TreeNode*> q;
    q.push(root);
    int i = 1;
    while(!q.empty() && i < nums.size())
    {
        TreeNode *cur = q.front();
        q.pop();
        if(i < nums.size() && nums[i] != null)
        {
            cur->left = new TreeNode(nums[i]);
            q.push(cur->left);
        }
        i++;
        if(i < nums.size() && nums[i] != null)
        {
            cur->right = new TreeNode(nums[i]);
            q.push(cur->right);
        }
        i++;
    }
    return root;
}

vector<int> preorderTraversal(TreeNode* root) {
    vector<int> res;
    stack<TreeNode*> st;
    st.push(root);
    while (!st.empty()) {
        TreeNode* node = st.top();
        st.pop();
        if (node != nullptr) {
            res.push_back(node->val);
            st.push(node->right);
            st.push(node->left);
        }
        else
        	res.push_back(null);
    }
    while (res.back()==null)
    	res.pop_back();
    return res;
}
 
string vectorToString(vector<int> vect) {
    stringstream ss;
	ss << "[";
    for (size_t i = 0; i < vect.size(); i++)
	{
        ss << (vect[i] == null ? "null" : to_string(vect[i]));
        ss << (i < vect.size() - 1 ? "," : "]");
    }
    return ss.str();
}
  
int main() {
	Solution s;
    vector<int> nums = {1,2,5,3,4,null,6};  
    TreeNode* root = buildTree(nums);  
    s.flatten(root); 
    cout << vectorToString(preorderTraversal(root)) << endl;
    return 0;  
}

输出:

[1,null,2,null,3,null,4,null,5,null,6]


🌟 每日一练刷题专栏 🌟

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

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

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

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

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

Golang每日一练 专栏

Python每日一练 专栏

C/C++每日一练 专栏

Java每日一练 专栏

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

AI助手帮你轻松做好Imagenet数据集重命名与复制

AI助手帮你轻松做好Imagenet数据集重命名与复制 任务需求 我们对Imagenet数据集进行了水下的退化处理&#xff0c;保存的数据集所有图片的深度图&#xff0c;格式为.npy。但是命名存在一些问题&#xff0c;现有格式为&#xff1a;n02009912_1916.JPEG.npy&#xff0c;需要更改…

KNN、SVM、MLP、K-means分类实验

来源&#xff1a;投稿 作者&#xff1a;摩卡 编辑&#xff1a;学姐 数据集简介 实验使用了两个数据集&#xff0c;一个是经典的鸢尾花数据集(iris)另一个是树叶数据集(leaf) 鸢尾花数据集(iris)&#xff1a; 鸢尾花数据集发布于1988年7月1日&#xff0c;该数据集共有150条数…

chapter-4-数据库语句

以下课程来源于MOOC学习—原课程请见&#xff1a;数据库原理与应用 考研复习 概述 SQL发展 注&#xff1a;关键词是哪些功能&#xff0c;尤其第一个create alter drop是定义功能 1.SQL功能强大&#xff0c;实现了数据定义、数据操纵、数据控制等功能 2.SQL语言简洁&#xff…

一般形式的S曲线公式推导

文章目录一、背景二、目标三、计算3.1 S曲线基本形式3.2 S曲线变换3.3 参数计算3.4 S曲线中心对称条件四、总结五、附件一、背景 S曲线因具备良好可控的平滑性、单调性、连续可导性等优点&#xff0c;常作为各类电机升降速曲线。当前多数S曲线的介绍文章未给出推导过程&#x…

项目的总结

逻辑处理 首先对于版项目来说,工作多是一定的但是又可以看到自己的知识被应用和自己学的不是一无所用。 对于一个项目而言,逻辑是很重要的。理解一个项目的逻辑,我们才能去实施工作画流程图、用例图、原型图、e-r图等等模型 一开始对于一个项目、逻辑是十分混乱的,就需要解耦,把…

OpenCV基础之边缘检测与轮廓描绘

文章目录OpenCv基础之边缘检测与轮廓描绘Canny边缘检测图像轮廓绘制轮廓OpenCv基础之边缘检测与轮廓描绘 边缘检测&#xff1a;主要是通过一些手段检测数字图像中明暗变化剧烈&#xff08;即梯度变化比较大&#xff09;像素点&#xff0c;偏向于图像中像素点的变化。 轮廓检测…

VScode 自动格式化配置

按照自定义 c/c 格式配置自动格式化保存 1. 设置 快捷键&#xff1a;ctrl, 2. format 3.设置C/C格式化格式 参数 &#xff1a; { BasedOnStyle: LLVM, UseTab: Never, IndentWidth: 4, TabWidth: 4, BreakBeforeBraces: Linux, AllowShortIfStatementsOnASingleLine: fals…

【启动图片与控制器大小的关系 Objective-C语言】

一、启动图片与控制器大小的关系 1.我首先呢,新建一个项目,把控制器的View设置成多大呢,设置成4.7英寸,这是按照我们iPhone6的大小来设置的吧, 2.控制器是4.7英寸,控制器里面这个View,占满整个屏幕,所以它也是4.7英寸大小吧,375667, 3.我在viewDidLoad里,输出一下…

Vite构建Vue3项目

目录1. 初始化2. 输入项目名称3. 选择vue4. 选择typescript5. 进入新建的项目6. 安装依赖7. 运行8. 安装路由9. 安装element-plus10. 安装自动导入组件插件11. 安装自动导入api插件12. 将./src变为13. 安装pinia1. 初始化 npm init vite2. 输入项目名称 vue3-ts 3. 选择vue 4…

存量市场之下,电商之战深入腹地且逻辑未变

纵然是在流量依然见顶的大背景下&#xff0c;电商行业的竞争并未结束。无论是以百亿补贴为代表的烧钱策略&#xff0c;还是以跨境出海为代表的规模策略&#xff0c;几乎都是这样一种现象的直接体现。种种迹象表明&#xff0c;未来的电商行业&#xff0c;依然会有新的战役发生。…

针对近日ChatGPT账号大批量封禁的理性分析

文 / 高扬 这两天不太平。 3月31号&#xff0c;不少技术圈的朋友和我闲聊说&#xff0c;ChatGPT账号不能注册了。 我不以为然&#xff0c;自己有一个号足够了&#xff0c;并不关注账号注册的事情。 后面又有不少朋友和我说ChatGPT账号全部不能注册了&#xff0c;因为老美要封锁…

软件测试今天你被内卷了吗?

认识一个人&#xff0c;大专学历非计算机专业的&#xff0c;是前几年环境好的时候入的行&#xff0c;那时候软件测试的要求真的很低&#xff0c;他那时好像是报了个班&#xff0c;然后入门的&#xff0c;但学的都是些基础&#xff0c;当时的他想的也简单&#xff0c;反正也能拿…

【LeetCode每日一题: 516. 最长回文子序列 | 暴力递归=>记忆化搜索=>动态规划 | 区间dp 】

&#x1f34e;作者简介&#xff1a;硕风和炜&#xff0c;CSDN-Java领域新星创作者&#x1f3c6;&#xff0c;保研|国家奖学金|高中学习JAVA|大学完善JAVA开发技术栈|面试刷题|面经八股文|经验分享|好用的网站工具分享&#x1f48e;&#x1f48e;&#x1f48e; &#x1f34e;座右…

【华为OD机试】1035 - 判断两个IP是否属于同一子网

文章目录一、题目&#x1f538;题目描述&#x1f538;输入输出&#x1f538;样例1二、思路解析三、代码参考作者&#xff1a;KJ.JK&#x1f308; &#x1f308; &#x1f308; &#x1f308; &#x1f308; &#x1f308; &#x1f308; &#x1f308; &#x1f308; &#x1f…

MySQL库的操作

文章目录一、创建数据库1.语法2.使用案例二、字符集和校验规则1.查看系统默认字符集以及校验规则2.查看数据库支持的字符集3.查看数据库支持的字符集校验规则4.校验规则对数据库的影响三、操纵数据库1.查看数据库2.显示创建语句3.修改数据库4.删除数据库5.查看连接情况一、创建…

Linux进程间通信

“休息过长就会发霉。”--沃尔特司各特 在讲述完毕Linux中的基础IO之后&#xff0c;我们要来到Linux中很重要的一个模块&#xff0c;即进程间通信。 目录 1.引入 2.管道 2.1内容 2.2原理 2.3操作 2.3.1匿名管道的创建 2.3.2命名管道的创建 1.引入 进程间通信&#x…

计讯物联小型水库雨水情测报与大坝安全监测一体化解决方案,确保水库安全运行

方案背景 防洪治理工程是一项重大的民生工程&#xff0c;也是重大的生态工程。基于我国水灾频发的大背景下&#xff0c;小型水库作为防汛抗洪的重要基础设施&#xff0c;其雨水情测报与大坝安全监测是十分有必要的&#xff0c;不仅可为预防水灾、防汛决策提供大量可靠的数据和资…

SpringAMQP

什么是SpringAMQP 官方网址 官方文档https://spring.io/projects/spring-amqp Base Queue 简单队列模型 对于生产者 <!--AMQP依赖&#xff0c;包含RabbitMQ--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boo…

实验6 TensorFlow基础

1. 实验目的 掌握TensorFlow低阶API&#xff0c;能够运用TensorFlow处理数据以及对数据进行运算。 2.实验内容 ①实现张量维度变换&#xff0c;部分采样等&#xff1b; ②实现张量加减乘除、幂指对数运算&#xff1b; ③利用TensorFlow对数据集进行处理。 3.实验过程 题目…

亚马逊测评只能下单上好评?卖家倾向养号测评还有这些骚操作

亚马逊测评这对于绝大部分亚马逊卖家来说都不陌生&#xff0c;如今的亚马逊市场也很多卖家都在用测评科技来打造爆款。不过很多对于亚马逊测评的认知只停留在简单的刷销量&#xff0c;上好评。殊不知亚马逊养号测评还有其它强大的骚操作。 亚马逊自养号测评哪些功能呢&#xf…
最新文章