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

目录

  • 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;
}

在这里插入图片描述

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

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

相关文章

算法基础之最短编辑距离

最短编辑距离 核心思想 &#xff1a; 线性dp 集合定义 &#xff1a; f[i][j]为操作方式的最小值 集合计算 : 三种操作 取最小 ① 删除 : 将a[i]删掉 使ab相同 –> f[i-1][j] 1 f[i][j]② 增添 : 在a[i]后加上一个数 使ab相同 –> f[i][j-1] 1 f[i][j]③ 替换 : 将a[…

基于ssm的航空票务推荐系统的设计与实现论文

摘 要 传统信息的管理大部分依赖于管理人员的手工登记与管理&#xff0c;然而&#xff0c;随着近些年信息技术的迅猛发展&#xff0c;让许多比较老套的信息管理模式进行了更新迭代&#xff0c;航班信息因为其管理内容繁杂&#xff0c;管理数量繁多导致手工进行处理不能满足广大…

基于Python的新闻爬取和推荐系统实践

基于Python的新闻爬取和推荐系统实践 项目概述数据集来源技术栈功能特点普通用户功能管理员功能需求 创新点 项目概述 在这个全功能的新闻爬取和推荐系统项目中&#xff0c;我们致力于构建一个高效、智能的平台&#xff0c;为用户提供个性化的新闻阅读体验。采用了Python语言&…

oracle执行不了update

oracle数据库select等其他语句执行正常&#xff0c;update语句执行后一直执行不完&#xff0c;原因是产生了记录锁。 &#xff08;1&#xff09;查询锁 SELECT a.sid, a.serial#,a.USERNAME,ao.OBJECT_NAME FROM v$locked_object lo, dba_objects ao, v$session a WHERE ao.o…

C语言易错知识点十(指针(the final))

❀❀❀ 文章由不准备秃的大伟原创 ❀❀❀ ♪♪♪ 若有转载&#xff0c;请联系博主哦~ ♪♪♪ ❤❤❤ 致力学好编程的宝藏博主&#xff0c;代码兴国&#xff01;❤❤❤ 许久不见&#xff0c;甚是想念&#xff0c;真的是时间时间&#xff0c;你慢些吧&#xff0c;不能再让头发变秃…

电子邮件地址填写指南:格式与常见问题解答

一个专业的电子邮件地址是一个你只用于工作目的的通信帐户。当你给收件人发送电子邮件时&#xff0c;这是他们最先看到的细节之一。无论你的职位或行业如何&#xff0c;拥有一个专业的电子邮件地址都可以提高你和所在公司的可信度。 在本文中我们解释了专业的电子邮件地址是什么…

PAT 乙级 1033 旧键盘打字

旧键盘上坏了几个键&#xff0c;于是在敲一段文字的时候&#xff0c;对应的字符就不会出现。现在给出应该输入的一段文字、以及坏掉的那些键&#xff0c;打出的结果文字会是怎样&#xff1f; 输入格式&#xff1a; 输入在 2 行中分别给出坏掉的那些键、以及应该输入的文字。其…

使用Vue3开发学生管理系统模板1

环境搭建 通过解压之前《Vue3开发后台管理系统模板》的代码&#xff0c;我们能够得到用户增删改查的页面&#xff0c;我们基于用户增删改查的页面做进一步的优化。 创建学生增删改查页面 第一步&#xff1a;复制用户增删改查页面&#xff0c;重命名为StudentCRUD.vue <…

java图书管理系统

主要模块&#xff1a; 为用户开通借书服务增加图书信息登记图书借出信息 技术栈&#xff1a; JSPServletTomcat9.0IDEAMysql 前台登录验证使用框架 数据库脚本包括登录用户名和密码已经写在了数据库脚本.sql 中 解压“需要的jar包”添加到项目的dependency中 运行效果&a…

构建基于小红书笔记详情API的内容生态

随着互联网的发展&#xff0c;内容生态的构建已经成为了许多企业和个人的重要任务。小红书作为一家以内容分享为主的社交平台&#xff0c;其API的开放为开发者提供了一种全新的方式来获取用户生成内容&#xff08;UGC&#xff09;。本文将介绍如何从无到有地构建基于小红书笔记…

告别HTTP,拥抱HTTPS!免费SSL证书领取指南

为什么选择HTTPS&#xff1f; HTTP和HTTPS之间的主要区别在于安全性。HTTP是一种不安全的协议&#xff0c;数据在传输过程中是明文的&#xff0c;容易受到中间人攻击。而HTTPS通过SSL&#xff08;Secure Sockets Layer&#xff09;或TLS&#xff08;Transport Layer Security&…

zabbix通过自动发现-配置监控项、触发器(小白教程)

自动发现配置参考链接&#xff08;不小白&#xff0c;不友好&#xff09; zabbix-get介绍 1配置 zabbix server&#xff1a;版本7&#xff08;不影响&#xff09;,IP地址&#xff1a;192.168.0.60zabbix agent&#xff1a;版本agent1&#xff08;不影响&#xff09;&#xff…

【Graylog】通过Pipelines在Graylog生成IP地理位置信息

序 在当今数字化时代&#xff0c;随着网络攻击的不断增加和全球化的用户活动&#xff0c;了解IP地址的地理位置信息变得越来越重要。对于网络安全和营销策略来说&#xff0c;掌握IP地址的地理信息可以带来许多好处。 接下里将介绍如何通过Graylog的Pipelines功能&#xff0c;…

arkts中@Watch监听的使用

概述 Watch用于监听状态变量的变化&#xff0c;当状态变量变化时&#xff0c;Watch的回调方法将被调用。Watch在ArkUI框架内部判断数值有无更新使用的是严格相等&#xff08;&#xff09;&#xff0c;遵循严格相等规范。当在严格相等为false的情况下&#xff0c;就会触发Watch的…

【数据结构——图】图的最短路径(头歌习题)【合集】

目录 第1关&#xff1a;单源最短路径完整代码 第2关&#xff1a;多源最短路径输入格式:输出格式:完整代码 第1关&#xff1a;单源最短路径 给一个n(1 ≤ n ≤ 2500) 个点 m(1 ≤ m ≤ 6200) 条边的无向图&#xff0c;求 s 到 t 的最短路。 输入格式: 第一行四个由空格隔开的整…

计算机视觉工程师就业前景如何

计算机视觉主要涵盖了图像处理、模式识别等多个领域&#xff0c;可以应用到很多行业中。随着人工智能技术的快速发展&#xff0c;计算机视觉作为其中的重要分支之一&#xff0c;其就业前景非常广阔。 为进一步贯彻落实中共中央印发《关于深化人才发展体制机制改革的意见》和国…

AIGC重塑基础设施,高密数据中心为何众望所归?

凯文凯利在《必然》中认为&#xff0c;科技在本质上有所偏好&#xff0c;使得它朝往某种特定方向。 毫无疑问&#xff0c;进入到数字经济时代&#xff0c;人工智能技术飞速发展与加速应用之际&#xff0c;这个特定方向逐渐明朗&#xff1a;即算力科技&#xff0c;算力已经成为…

驾驶人类未来:Apollo自动驾驶系统的影响力

前言 「作者主页」&#xff1a;雪碧有白泡泡 「个人网站」&#xff1a;雪碧的个人网站 ChatGPT体验地址 文章目录 前言1. 什么是自定义指令&#xff1f;2. Apollo中的自定义指令2.1 查询中的自定义指令2.2 变更操作中的自定义指令 3. 自定义指令的实现结论 文章目录 前言1. 什…

原型链补充

1.什么是原型对象 函数的独有属性,他用prototype来表示,可以在函数的prototype上挂载一些公用的属性和方法,供实例化对象来访问。 2.__proto__属性 这个属性每一个对象都有,实例化对象就是通过这个属性,来访问原型对象上的属性和方法的。 3.三者之间的关系 1.在构造函数的原型…

力扣算法-Day16

目录 454. 四数相加 II 383. 赎金信 454. 四数相加 II 给你四个整数数组 nums1、nums2、nums3 和 nums4 &#xff0c;数组长度都是 n &#xff0c;请你计算有多少个元组 (i, j, k, l) 能满足&#xff1a; 0 < i, j, k, l < nnums1[i] nums2[j] nums3[k] nums4[l] …