每日一练(编程题-C/C++)

news2025/3/1 4:41:11

目录

  • CSDN每日一练
    • 1. 2023/2/27- 一维数组的最大子数组和(类型:数组 难度:中等)
    • 2. 2023/4/7 - 小艺照镜子(类型:字符串 难度:困难)
    • 3. 2023/4/14 - 最近的回文数(难度:中等)
    • 4. 2023/2/1-蛇形矩阵(难度:困难)
    • 6. 2023/5/26 - 单词逆序(类型:字符串、逆序 难度:中等)
  • LeetCode题库-C语言
    • 674. 最长连续递增序列(难度:简单)
    • 1309. 解码字母到整数映射(难度:简单)

CSDN每日一练

1. 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;
}

示例1:
9 【-2 1 -3 4 -1 2 -5 4】起始:3 终止:6

示例2:
5 【1 -2 3 5 -1 2】 起始:2 终止:5

2. 2023/4/7 - 小艺照镜子(类型:字符串 难度:困难)

最长回文子串问题(四种方法)

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



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

int ExpandPalindrome(char s[], int n, int left, int right)
{
    int count = 1;
    while (left >= 0 && right < n && s[left] == s[right])
    {
        left--;
        right++;
        count++;
    }
    return count;
}


void solution(char s[]) {

    // TODO: 请在此编写代码
    int i, n, length1, length2, maxlen = 1, count1, count2;
    n = strlen(s); //计算字符串的长度
    if (n == 2 && s[0] == s[1]) maxlen = 2;
    for (i = 1; i < n - 1; i++) //循环不包括开头和结尾
    {
        count1 = ExpandPalindrome(s, n, i - 1, i + 1); //回文串长度是奇数的情况
        length1 = 2 * count1 - 1; 
        if (length1 >= maxlen) maxlen = length1;
        if (s[i + 1] == s[i]) //回文串长度是偶数的情况
        {
            count2 = ExpandPalindrome(s, n, i, i + 1); 
            length2 = 2 * (count2 - 1);
            if (length2 >= maxlen) maxlen = length2;
        } 
    }
    printf("%d", maxlen);
}

int main() {

    char* s = (char*)malloc(sizeof(char) * 1000); //动态开辟内存空间
    scanf_s("%s", s);

    solution(s);
    free(s);
    return 0;
}

3. 2023/4/14 - 最近的回文数(难度:中等)

#include <iostream>
#include<string>
using namespace std;

int main()
{
    int n;
    cin >> n;
    
    int flag = 0, length, count;
    int i, j, k;
    for (i = n; !flag; i++) //从当前数开始,逐个判断
    {
        length = 0, count = 0; k = 0;
        string str = to_string(i); //函数to_string用于把数字类型转换为string类型
        length = str.length(); //获取字符串的长度
        int times = length / 2; //比较次数
        while (times--)
        {
            if (str[k] == str[length - 1 - k]) //头尾对比
            {
                count++; //计数比较次数
                k++;
            }
            else break; //一旦不相等就开始下一个数的判断
        }
        if (count == length / 2) 
        {
            flag = 1; //找到最近的回文数
            cout << i; //输出
        }
    }
    
    return 0;
}

运行超时,您的程序未能在规定的时间内运行结束,请检查是否循环有错或算法复杂度过大。

4. 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;
}

运行结果:

6. 2023/5/26 - 单词逆序(类型:字符串、逆序 难度:中等)


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



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

void solution(char str[1000]) {

    // TODO: 请在此编写代码
    int i, j = 0, length, count = 0, array[100];
    length = strlen(str); //字符串的长度
    for (i = 0; i < length; i++)
    {
        if (str[i] == ' ')
        {
            array[j++] = i + 1;
            count++; //统计空格的数量
        }
    }

    //for (i = 0; i < count; i++) printf("%d ", array[i]);
    //printf("\n");



    int location = count - 1;
    for (i = count; i > 0; i--) //输出除第一段外其他的部分
    {
        for (j = array[location]; j < length && str[j] != ' '; j++) printf("%c", str[j]);
            location = location - 1;
        printf(" "); //输出后带上空格
    }
    for (i = 0; i < length && str[i] != ' '; i++) printf("%c", str[i]); //第一段单独输出

}

int main() {
    char str[1000];
    gets_s(str);   //可以读取空格, 回车才会结束输入

    solution(str);
    return 0;
}
整数类型数值范围转换函数
有符号8位整数 − 2 7 -2^7 27 ~ 2 7 − 1 2^7-1 271int8
无符号8位整数 0 0 0 ~ 2 8 − 1 2^8-1 281unit8
有符号16位整数 − 2 15 -2^{15} 215 ~ 2 15 − 1 2^{15}-1 2151int16
无符号16位整数 0 0 0 ~ 2 16 − 1 2^{16}-1 2161unit16
有符号32位整数 − 2 31 -2^{31} 231 ~ 2 31 − 1 2^{31}-1 2311int32
无符号32位整数 0 0 0 ~ 2 32 − 1 2^{32}-1 2321unit32
有符号64位整数 − 2 63 -2^{63} 263 ~ 2 63 − 1 2^{63}-1 2631int64
无符号64位整数 0 0 0 ~ 2 64 − 1 2^{64}-1 2641unit64

LeetCode题库-C语言

674. 最长连续递增序列(难度:简单)

在这里插入图片描述

int findLengthOfLCIS(int* nums, int numsSize){
    int result = 0, count;

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

    return result + 1;
}

1309. 解码字母到整数映射(难度:简单)

char * freqAlphabets(char * s){
   char *arr=malloc(sizeof(char)*strlen(s));
	int i = 0, count = 0;
	while (i < strlen(s))
	{
		if (i < strlen(s) - 2 && s[i + 2] == '#')
		{
			arr[count++] = 'j' + (s[i] - '0') * 10 + (s[i + 1] - '0') -10; //'j' - 'z'
			i = i + 3; //跳到#号后一位数字开始判断
		}
		else
		{
			arr[count++] = 'a' + (s[i] - '0') - 1; //'a' - 'i'
			i = i + 1; //接着下一位数字开始判断
		}
	}
    arr[count] =  '\0'; //字符串结束符
	return arr;
}

在这里插入图片描述

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

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

相关文章

数据采集来源有哪些?怎么做?

数据采集 数据采集&#xff0c;又称数据获取&#xff0c;是指从传感器和其他待测设备等模拟和数字被测单元中自动采集非电量或者电量信号&#xff0c;送到上机中进行分析、处理。 ✦ 一、电商数据采集主要来源 1、互联网公开数据 互联网是数据采集的主要来源之一&#xff0c…

kivy开发一个登陆界面

Kivy Kivy是一个用于开发跨平台移动应用&#xff08;如Android和iOS&#xff09;以及桌面应用&#xff08;如Windows、Linux和macOS&#xff09;的Python框架。它采用开源许可证&#xff08;MIT许可证&#xff09;&#xff0c;提供了丰富的图形界面组件和工具&#xff0c;以便…

Android Studio如何查找和替换

目录 前言 一、概述 二、总结 三、更多资源 前言 在Android Studio中&#xff0c;查找和替换是非常常见的操作&#xff0c;它可以帮助我们快速地定位和修改代码中的错误或不合适的内容。本文将介绍如何在Android Studio中进行查找和替换操作&#xff0c;包括基本的查找和替…

css 设置鼠标覆盖显示菜单

鼠标覆盖到“全部分类”效果如下 鼠标放到“精品推荐”效果如下 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"&g…

Linux网络编程学习心得.2

1.连接服务器 连接服务器 #include <sys/socket.h> int connect(intsockfd , const struct sockaddr *addr, socklen_t addrlen); 功能: 连接服务器 sockfd: socket套接字 addr: ipv4套接字结构体的地址 addrlen: ipv4套接字结构体的长度 2.tcp服务器通信流程 监…

C++初阶——基础知识(函数重载与引用)

目录 1.命名冲突 2.命名空间 3.缺省参数 4.函数重载 1.函数重载的特点包括&#xff1a; 2.函数重载的好处包括&#xff1a; 3.引用 引用的特点包括 引用的主要用途包括 引用和指针 引用 指针 类域 命名空间域 局部域 全局域 第一个关键字 命名冲突 同一个项目之间冲…

8天狂收6000+⭐️,可商用的开源Stream Diffusion

加州大学伯克利分校、东洋大学、东京工业大学、麻省理工学院和筑波大学等研究人员&#xff0c;联合开源了一款创新性实时交互图像生成框架——Stream Diffusion。 Stream Diffusion的技术创新点在于&#xff0c;将传统的顺序去噪变成流批处理去噪&#xff0c;消除了漫长的等待…

嵌入式学习路线

嵌入式系统是一种将软件和硬件紧密结合的技术&#xff0c;首先我们要认识到&#xff0c;无论我们是专注于软件开发还是硬件开发&#xff0c;最终的目标都是为了更好的工作和职业发展。 根据企业的规模和需求&#xff0c;大公司更倾向于将职责分得更细&#xff0c;例如软件分为…

2023年总结(2023年1月1日至2023年12月31日)

前言 时间过得真快啊&#xff0c;一年又过去了。 从去年11月换了家公司后&#xff0c;工作就稳定多了&#xff0c;做的工作也是我喜欢做的工作——摄像头驱动&#xff0c;平时也挺轻松的&#xff0c;偶尔有事儿的时候会压力大点&#xff0c;加点班&#xff0c;其他都还好&…

SAP 资产管理后台配置之设定主数据字段

前阵子给财务创建了一个固定资产类型&#xff0c;但同事使用时发现字段跟平时不一样。 正常是有下面这些标签页的 然后我找到主数据屏幕格式的配置里发现 发现格式默认错了 应该是默认我司的自定义格式ZSAP 但是改成ZSAP还是不会生效 需要给这个资产分类重新分配一下字段标签页…

『番外篇八』SwiftUI 脑洞大开实现“另类”视图跟随方法

概览 在 SwiftUI 的开发中,我们时常需要用指尖丝滑般地操作指定视图:比如,我们需要在拖动视图后让它自动归位,或者拖动一个视图时让另一个视图跟随它移动。 我们随后将会详细讨论上述两个 SwiftUI 中与视图移动相关场景的实现。 在本篇博文中,您将学到如下内容: 概览1.…

12.31_黑马数据结构与算法笔记Java

目录 331 两数之和 Leetcode167 332 三数之和 Leetcode15 333 四数之和 Leetcode18 334 盛水最多容器 Leetcode11 335 滑动窗口最大值 Leetcode239 336 接雨水 Leetcode42 337 字符串匹配 bf Leetcode28 338 字符串匹配 kmp Leetcode28 339 字符串匹配 lps Leetcode28 …

洛谷:集合与差分

1.学籍管理(map&#xff09; #include<iostream> #include<map> #include<string> using namespace std; map<string,int>a; int n; string name; int op,score; int main() {cin>>n;for(int i1;i<n;i){cin>>op;if(op!4)cin>>na…

深度解析ShardingJDBC:Java开发者的分库分表利器

一、ShardingSphere ShardingSphere 是一款起源于当当网内部的应用框架。2015年在当当网内部诞 生&#xff0c;最初就叫ShardingJDBC 。2016年的时候&#xff0c;由其中一个主要的开发人员张亮&#xff0c; 带入到京东数科&#xff0c;组件团队继续开发。在国内历经了当当网、电…

Mybatis 事务接口

当我们从数据源中得到一个可用的数据库连接之后&#xff0c;就可以开启一个数据库事务了&#xff0c;事务成功开启之后&#xff0c;我们才能修改数据库中的数据。 在修改完成之后&#xff0c;我们需要提交事务&#xff0c;完成整个事务内的全部修改操作&#xff0c;如果修改过…

《最新出炉》系列初窥篇-Python+Playwright自动化测试-4-playwright等待浅析

1.简介 在介绍selenium的时候&#xff0c;宏哥也介绍过等待&#xff0c;是因为在某些元素出现后&#xff0c;才可以进行操作。有时候我们自己忘记添加等待时间后&#xff0c;查了半天代码确定就是没有问题&#xff0c;奇怪的就是获取不到元素。然后搞了好久&#xff0c;或者经…

桉木芯建筑模板与其他材质比较有何不同?

在建筑行业中&#xff0c;模板的选择对于确保工程质量和效率至关重要。桉木芯建筑模板作为市场上的一种选择&#xff0c;与其他材质的模板相比&#xff0c;具有独特的优势。能强优品木业作为专业的桉木芯建筑模板生产厂家&#xff0c;其产品充分展示了这一材质的优越性能。 材质…

技术博客官网也是一个不错的学习平台(第411篇)

技术博客官网也是一个不错的学习平台(第411篇) 今天的主题是OSPF 大纲 技术成就梦想51CTO-中国知名的数字化人才学习平台和技术社区 OSPF 概念型问题_wx655f0abb3511b的技术博客_51CTO博客 OSPF协议介绍及配置 - airoot - 博客园 (cnblogs.com) 一、OSPF概述 回顾一下距离矢…

如何实现WinApp的UI自动化测试?

WinApp&#xff08;WindowsAPP&#xff09;是运行在Windows操作系统上的应用程序&#xff0c;通常会提供一个可视的界面&#xff0c;用于和用户交互。例如运行在Windows系统上的Microsoft Office、PyCharm、Visual Studio Code、Chrome&#xff0c;都属于WinApp。常见的WinApp&…

[pingCTF 2023] 闲来无事作个题

谁元旦还打CTF啊&#xff0c;这两周没有比赛&#xff0c;明天才加班&#xff0c;作个已经过去的比赛。好在已经有官方WP&#xff0c;不会的可以看。 PWN without-love-it-cannot-be-seen 这个没有代码属于瞎pwn&#xff0c;随便输入个东西会提示密码不正确&#xff0c;然后输…