CSDN每日一练(编程题)

news2024/12/27 12:26:44

目录

  • 1. 2023/1/31-非降序数组(类型:数组&排序 难度:中等)
  • 2. 2023/2/1- 走楼梯(类型:递归&循环 难度:中等)
  • 3. 2023/2/1-蛇形矩阵(难度:困难)
  • 4. 2023/2/2-奇偶排序(类型:数组&奇偶排序 难度:中等)
  • 5. 2023/2/6- 查找整数(类型:数组&二分查找 难度:中等)
  • 6. 2023/2/13-最长递增区间(类型:数组 难度:简单)
  • 7. 2023/2/27- 一维数组的最大子数组和(类型:数组 难度:中等)

1. 2023/1/31-非降序数组(类型:数组&排序 难度:中等)

在这里插入图片描述

// 请关闭中文输入法,用英文的字母和标点符号。
// 如果你想运行系统测试用例,请点击【执行代码】按钮,如果你想提交作答结果,请点击【提交】按钮,
// 注意:除答案外,请不要打印其他任何多余的字符,以免影响结果验证
// 本OJ系统是基于 OxCoder 技术开发,网址:www.oxcoder.com
// 模版代码提供基本的输入输出框架,可按个人代码习惯修改

#include <stdio.h>

void solution(int n, int m, int arr1[], int arr2[], int result[]){
    
    // TODO: 请在此编写代码
    int j = 0, k = 0;
    for (int i = 0; i < m + n; i++)
    {
        if (arr1[j] <= arr2[k])
        {
            result[i] = arr1[j];
            j++;
        }
        else
        {
            result[i] = arr2[k];
            k++;
        }
        if (i < m + n && j == n)
        {
            while (m - k)
            {
                result[++i] = arr2[k];
                k++;
            }
            break;
        }
        if (i < m + n && k == m)
        {
            while (n - j)
            {
                result[++i] = arr1[j];
                j++;
            }
            break;
        }
    } 
}

int main() 
{
    int n;
	int m;
    scanf("%d", &n);
	scanf("%d", &m);

    int arr1[n];
    for (int i = 0; i < n; i++) scanf("%d", &arr1[i]);

    int arr2[m];
    for (int i = 0; i < m; i++) scanf("%d", &arr2[i]);
        
    int return_size = m + n;
    int result[return_size];
    solution(n, m, arr1, arr2, result);
 
    for (int i = 0; i < return_size; i++) printf("%d ", result[i]);

    return 0;
}


2. 2023/2/1- 走楼梯(类型:递归&循环 难度:中等)

// 请关闭中文输入法,用英文的字母和标点符号。
// 如果你想运行系统测试用例,请点击【执行代码】按钮,如果你想提交作答结果,请点击【提交】按钮,
// 注意:除答案外,请不要打印其他任何多余的字符,以免影响结果验证
// 本OJ系统是基于 OxCoder 技术开发,网址:www.oxcoder.com
// 模版代码提供基本的输入输出框架,可按个人代码习惯修改

#include <stdio.h>

long long solution(int m) {

    // TODO: 请在此编写代码
    long long arr[100];
    arr[0] = arr[1] = 1;
    for (int i = 2; i <= m; i++) arr[i] = arr[i - 1] + arr[i - 2];
    return arr[m];
}


int main() 
{
    int m;
    scanf("%d", &m);
    long long result = solution(m);
    printf("%lld", result);
    return 0;
}


3. 2023/2/1-蛇形矩阵(难度:困难)

#include<stdio.h>
#include<stdlib.h>

void Print(int num, int **arr) //打印蛇形矩阵
{
	if (num == 0) printf("%d", arr[0][0]);
	else
	{
		for (int i = 0; i < num; i++)
		{
			for (int j = 0; j < num; j++)
				printf("%d ", arr[i][j]);
			printf("\n");
		}

	}
}

int main()
{
	int i, j, m, n, num;
	scanf_s("%d", &num);

	int** arr = (int**)malloc(num * sizeof(int*)); //动态开辟存储单元
	for (int i = 0; i < num; i++) {
		arr[i] = (int*)malloc(num  * sizeof(int));
	}

	arr[0][0] = 1;

	for (i = 1; i < num; i++) //上三角
	{
		if (i % 2 == 1) //奇数次循环的话,斜向下累加
		{
			m = 0; n = i;
			arr[0][i] = arr[0][i - 1] + 1; //偶数次循环,第一行的数为左边一个数加1
			for (j = 0; j < i; j++) arr[++m][--n] = arr[m - 1][n + 1] + 1; //从第二行开始斜向下累加
		}
		else //偶数次循环的话,斜向上累加
		{
			m = i; n = 0;
			arr[i][0] = arr[i - 1][0] + 1; //奇数次循环,第一列的数为上边一个数加1
			for (j = 0; j < i; j++) arr[--m][++n] = arr[m + 1][n - 1] + 1; //从第二列开始斜向上累加
		}
	}

	for (i = 0; i < (num - 1); i++) //下三角
	{
		if ((num + i) % 2 == 0) //num为偶数时,先斜向上累加
		{
			m = num-1, n = i + 1;
			arr[num-1][i + 1] = arr[num-1][i] + 1;
			for (j = num-1; j > (i+1); j--) arr[--m][++n] = arr[m + 1][n - 1] + 1;
		}
		else //num为奇数时,先斜向下累加
		{
			m = i + 1; n = num-1;
			arr[i + 1][num-1] = arr[i][num-1] + 1;
			for (j = num-1; j > (i+1); j--) arr[++m][--n] = arr[m - 1][n + 1] + 1;
		}
	}

	Print(num, arr);
	free(arr); //释放存储单元
	return 0;
}

运行结果:

4. 2023/2/2-奇偶排序(类型:数组&奇偶排序 难度:中等)



// 请关闭中文输入法,用英文的字母和标点符号。
// 如果你想运行系统测试用例,请点击【执行代码】按钮,如果你想提交作答结果,请点击【提交】按钮,
// 注意:除答案外,请不要打印其他任何多余的字符,以免影响结果验证
// 本OJ系统是基于 OxCoder 技术开发,网址:www.oxcoder.com
// 模版代码提供基本的输入输出框架,可按个人代码习惯修改

#include <stdio.h>
#include <stdlib.h>

void solution(int m, int arr1[], int result[]) {

    // TODO: 请在此编写代码
    int j = 0;
   
    for (int i = 0; i < m; i++) //奇数在前
    {
        if (arr1[i] % 2 == 1)
        {
            result[j] = arr1[i];
            j++;
        }
    }
    for (int i = 0; i < m; i++) //偶数在后
    {
        if (arr1[i] % 2 == 0)
        {
            result[j] = arr1[i];
            j++;
        }
    }
}

int main() {

    int* arr; //原数组
    arr = (int*)malloc(1000 * sizeof(int));
    for (int i = 0; i < 1000; i++) scanf("%d", &arr[i]);

    int* result; //新数组
    result = (int*)malloc(n * sizeof(int));

    solution(n, arr, result);

    for (int i = 0; i < n; i++) printf("%d ", result[i]);

    return 0;
}


5. 2023/2/6- 查找整数(类型:数组&二分查找 难度:中等)

// 请关闭中文输入法,用英文的字母和标点符号。
// 如果你想运行系统测试用例,请点击【执行代码】按钮,如果你想提交作答结果,请点击【提交】按钮,
// 注意:除答案外,请不要打印其他任何多余的字符,以免影响结果验证
// 本OJ系统是基于 OxCoder 技术开发,网址:www.oxcoder.com
// 模版代码提供基本的输入输出框架,可按个人代码习惯修改

#include <stdio.h>
#include <stdlib.h>

int solution(int n, int m, int arr[]) {

    // TODO: 请在此编写代码
    int low, high, mid;
    low = 0; high = n - 1;
    while (low <= high)
    {
        mid = (low + high) / 2; //取中间位置
        if (m < arr[mid]) 	high = mid - 1; //从前半部分继续查找
        else if (m > arr[mid]) low = mid + 1; //从后半部分继续查找 
        else
        {
            for (int i = mid; i < n; i++)
            {
                if (mid == n - 1) return mid; //目标值在数组的最后一个位置
                if ((mid < n - 1) && (m != arr[i])) return i - 1;
            }
        }
    }
    return -1; //查找失败
}

int main() {

    int n, m;
    scanf("%d %d", &n, &m);

    int* arr;
    arr = (int*)malloc(n * sizeof(int));

    for (int i = 0; i < n; i++) scanf("%d", &arr[i]);

    int result = solution(n, m, arr);

    printf("%d", result);
    free(arr);

    return 0;
}

在这里插入图片描述

6. 2023/2/13-最长递增区间(类型:数组 难度:简单)



// 请关闭中文输入法,用英文的字母和标点符号。
// 如果你想运行系统测试用例,请点击【执行代码】按钮,如果你想提交作答结果,请点击【提交】按钮,
// 注意:除答案外,请不要打印其他任何多余的字符,以免影响结果验证
// 本OJ系统是基于 OxCoder 技术开发,网址:www.oxcoder.com
// 模版代码提供基本的输入输出框架,可按个人代码习惯修改

#include <stdio.h>
#include <stdlib.h>

int solution(int n, int arr[]) {
    int result = 0, count;

    // TODO: 请在此编写代码
    for (int i = 0; i < n; i++)
    {
        count = 0;
        for (int j = i + 1; j < n; j++)
        {
            if (arr[j] > arr[j - 1]) count++;
            else break;
        }
        if (count > result) result = count;
    }

    return result + 1;
}


int main() {

    int n;
    scanf("%d", &n);
    
    int* arr;
    arr = (int*)malloc(n * sizeof(int));

    for (int i = 0; i < n; i++) scanf("%d", &arr[i]);

    int result = solution(n, arr);

    printf("%d", result);

    return 0;
}


  • 两题可用相同的代码,均通过测试

7. 2023/2/27- 一维数组的最大子数组和(类型:数组 难度:中等)


通过率80%


// 请关闭中文输入法,用英文的字母和标点符号。
// 如果你想运行系统测试用例,请点击【执行代码】按钮,如果你想提交作答结果,请点击【提交】按钮,
// 注意:除答案外,请不要打印其他任何多余的字符,以免影响结果验证
// 本OJ系统是基于 OxCoder 技术开发,网址:www.oxcoder.com
// 模版代码提供基本的输入输出框架,可按个人代码习惯修改

#include <stdio.h>
#include <stdlib.h>

void solution(int n, int arr[]) {

    // TODO: 请在此编写代码
    int max = arr[0], start = 0, end = 0;
    for (int i = 0; i < n; i++)
    {
        int current = 0;
        for (int j = i; j < n; j++)
        { 
            current = current + arr[j];
            if (current >= max)
            {
                max = current;
                start = i;
                end = j;
            }
        }
    }
    printf("%d %d", start, end);
}

int main() {
    int n;
    scanf("%d", &n);

    int* arr;
    arr = (int*)malloc(n * sizeof(int));
    
    for (int i = 0; i < n; i++) scanf("%d", &arr[i]);
    solution(n, arr);
    return 0;
}

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

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

相关文章

环境配置之Keepass

前言很久以前&#xff0c;就有了想要一个自己密码管理器的念头。毕竟&#xff0c;即使浏览器能记住各个网站的账号密码&#xff0c;但是在登录单独客户端的时候&#xff0c;仍然要翻找密码。为了省事&#xff0c;也曾经是一个密码走天下。然后被劫持了QQ给同学发黄色小网站&…

手写Mybatis

Mybatis总体流程 (1)加载配置并初始化触发条件:加载配置文件 配置来源于两个地方&#xff0c;一个是配置文件(主配置文件conf. xml, mapper文件*.xml),一个是java代码中的注解&#xff0c;将主配置文件内容解析封装到Configuration,将sql的配置信息加载成为一个mappedstateme…

ReentrantLock源码分析(一)加锁流程分析

一、ReetrantLock的使用示例 static ReentrantLock lock new ReentrantLock(); public static void main(String[] args) throws InterruptedException { new Thread(ClassLayOutTest::reentrantLockDemo, "threadA").start(); Thread.sleep(1000);…

Netty权威指南总结(二)

三、Netty代码相关&#xff1a;(四) EventLoop与EventLoopGroup&#xff1a;Netty的Nio线程是NioEventLoop。1. Reactor线程模型&#xff1a;Reactor模型的三个角色&#xff1a;Reactor&#xff1a;把IO事件分配给对应的Handler处理&#xff0c;功能像是调度器。Acceptor【饿渴…

【C++】C++核心编程(一)---内存四区

C程序在执行时&#xff0c;将内存大方向划分为4个区域 代码区 存放函数体的二进制代码&#xff0c;由操作系统进行管理全局区 存放全局变量和静态变量以及常量(字符串常量、全局常量)栈区 由编译器自动分配释放&#xff0c;存放函数的参数值、局部变量等堆区 由程序员分配和释…

jenkins问题

目录 python 不是内部或外部命令&#xff0c;也不是可运行的程序 ‘cmd’ 不是内部或外部命令&#xff0c;也不是可运行的程序或批处理文件。 git 不是内部或外部命令&#xff0c;也不是可运行的程序或批处理文件。 pywintypes.com_error: (-2147024891, ‘拒绝访问。’, None,…

Qt实用技巧:Qt中浮点数的相等比较方式(包括单精度和双精度)

若该文为原创文章&#xff0c;转载请注明原文出处 本文章博客地址&#xff1a;https://hpzwl.blog.csdn.net/article/details/129464152 红胖子(红模仿)的博文大全&#xff1a;开发技术集合&#xff08;包含Qt实用技术、树莓派、三维、OpenCV、OpenGL、ffmpeg、OSG、单片机、软…

Spring——AOP切入点表达式和AOP通知类型

切入点:要进行增强的方法 切入点表达式:要进行增强的方法的描述式 第一种方法的本质是基于接口实现的动态代理(jdk) 第二种是基于cglib实现的动态代理 AOP切入点表达式 而需要加载多个切入点时&#xff0c;不可能每个切入点都写一个切入点表达式 例子 下面的代理描述的是匹配…

条件语句(分支语句)——“Python”

各位CSDN的uu们你们好呀&#xff0c;最近总是感觉特别特别忙&#xff0c;但是却又不知道到底干了些什么&#xff0c;好像啥也没有做&#xff0c;还忙得莫名其妙&#xff0c;言归正传&#xff0c;今天&#xff0c;小雅兰的内容还是Python呀&#xff0c;介绍一些顺序结构的知识点…

Hadoop学习:Yarn

1.YARN介绍 一个通用的资源管理系统和调度平台 YARN不分配磁盘&#xff0c;由HDFS分配 相当于一个分布式的操作系统平台&#xff0c;为上层MR等计算程序提供运算所需要的资源&#xff08;内存、CPU等&#xff09; 2.YARN三大组件 不要忘记AppMaster&#xff0c;他是程序内部…

Android 进程间通信机制(二) mmap 原理

一. 前言 Binder中一次拷贝的实现就是利用mmap(memory mapping)内存映射机制,我们来看看它的工作原理. 二. 参考文章 下面这几篇文章建议先好好阅读一下,都是总结的很好的文章, 每个人理解可能不一样 笔者也是看了好多博客文章和B站视频讲解, 然后加上自己的理解后 输出的一…

程序的编译和链接

程序的编译和链接程序的编译和链接程序的两种环境翻译环境详解编译和链接预处理编译汇编链接运行环境程序的编译和链接 程序的两种环境 在ANSI C的任何一种实现中&#xff0c;存在两个不同的环境。 第1种是翻译环境&#xff0c;在这个环境中源代码被转换为可执行的机器指令。 …

《数据分析-JiMuReport04》JiMuReport报表设计入门介绍-页面优化

报表设计 2 页面优化 如上图所示的报表&#xff0c;仅仅是展示数据&#xff0c;不过这样看起来似乎太草率了&#xff0c;所以再优化一下吧 保存报表后&#xff0c;在积木报表中就可以看到对应的报表文件 此时我们如果还需要编辑报表&#xff0c;就点击这个报表即可 2.1 居中…

如何设计企业节点的『工业互联网标识解析系统』

一、『星火 链网』体系架构 『星火 链网』以节点形式进行组织互联互通&#xff0c;其中包括三类节点&#xff1a;超级节点、骨干节点、业务节点。 其底层采用“1N”主从链群架构&#xff0c;支持同构和异构区块链接入主链。在全国重点区域部署『星火 链网』超级节点&#…

three.js的demo例子-STL加载对象组件

three.js的demo例子-STL加载对象组件 提示&#xff1a;demo示例中所涉及到的three.js安装插件方法这里就不单个说明了哈&#xff0c;有需要的网上有很多教程 文章目录three.js的demo例子-STL加载对象组件效果展示插件模型一、HTML部分二、script部分1.引入库2.初始化数据3.监听…

卷王都在偷偷准备金三银四了...

年终奖没发&#xff1b; 简历石沉大海&#xff1b; 发消息只读不回 打开某招聘&#xff0c;看了看岗位&#xff0c;这个厂还不错&#xff0c;可是要求好高&#xff0c;我啥都不会。 “哎&#xff0c;算了&#xff0c;我简历还没更新呢&#xff0c;我躺到6月份拿到年终奖再跑…

【动态规划】多重背包问题,分组背包问题

Halo&#xff0c;这里是Ppeua。平时主要更新C语言&#xff0c;C&#xff0c;数据结构算法......感兴趣就关注我吧&#xff01;你定不会失望。 &#x1f308;个人主页&#xff1a;主页链接 &#x1f308;算法专栏&#xff1a;专栏链接 我会一直往里填充内容哒&#xff01; &…

名创优品业绩狂飙,手握哪些王牌?

撰稿 | 多客 来源 | 贝多财经 2023年注定是名创优品(NYSE:MNSO、HKEX:9896)发展史上具有重要意义的一年&#xff0c;不仅是创立的10周年&#xff0c;也是全球品牌战略升级的开局之年。 2月28日&#xff0c;名创优品公布了2023财年第二财季未经审计财务报告。得益于全球化战略…

机器学习笔记之狄利克雷过程(六)预测任务求解

机器学习笔记之狄利克雷过程——预测任务求解引言回顾&#xff1a;基于狄利克雷过程的预测过程预测任务的求解过程引言 上一节引出了基于狄利克雷过程的预测任务&#xff0c;本节将对该预测任务进行求解。 回顾&#xff1a;基于狄利克雷过程的预测过程 在已知隐变量样本集合…

Windows 环境安装Scala详情

为了进一步学习Spark&#xff0c;必须先学习Scala 编程语言。首先开始Scala 环境搭建。温馨提示&#xff1a;本文是基于Windows 11 安装Scala 2.13.1 版本第一步&#xff1a;确保本机已经正确安装JDK1.8 环境第二步&#xff1a;Scala 官网下载我们所属scala版本文件。Scala 官网…