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

news2024/12/29 11:39:37

目录

1. 输出最长的递增数字字符串  🌟🌟

2. 缺失的第一个正数  🌟🌟🌟

3. 最大矩形  🌟🌟🌟

🌟 每日一练刷题专栏 🌟

Golang每日一练 专栏

Python每日一练 专栏

C/C++每日一练 专栏

Java每日一练 专栏


1. 输出最长的递增数字字符串

如何在一亿位整数组成的字符串中找到最长的递增数字字符串?

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

```c++
#include <stdio.h>
#include <string.h>
#define MAX_SIZE 100000
int main()
{
    char buf[MAX_SIZE] = {0};
    int i = 0, len = 0, index = 0;
    char maxbuf[12] = {0};
    char maxbuf2[12] = {0};
    int maxlen = 0;
    gets(buf);
    len = strlen(buf);
    maxbuf2[0] = buf[0];
    i = 1;
    index = 1;
    while (i < len)
    {
        if (buf[i] > buf[i - 1])
        {
            maxbuf2[index] = buf[i];
            index++;
        }
        else
        {
            _________________;
        }
        i++;
    }
    if (index > maxlen)
    {
        maxlen = index;
        strcpy(maxbuf, maxbuf2);
        maxbuf[index] = '\0';
    }
    printf("最大串长度:%d,字符串:%s\n", maxlen, maxbuf);
    return 0;
}
```

出处:

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

代码:

#include <stdio.h>
#include <string.h>
#define MAX_SIZE 100000
int main()
{
    char buf[MAX_SIZE] = {0};
    int i = 0, len = 0, index = 0;
    char maxbuf[12] = {0};
    char maxbuf2[12] = {0};
    int maxlen = 0;
    gets(buf);
    len = strlen(buf);
    maxbuf2[0] = buf[0];
    i = 1;
    index = 1;
    while (i < len)
    {
        if (buf[i] > buf[i - 1])
        {
            maxbuf2[index] = buf[i];
            index++;
        }
        else
        {
            if (index > maxlen)
            {
                maxlen = index;
                strcpy(maxbuf, maxbuf2);
                maxbuf[index] = '\0';
            }
            maxbuf2[0] = buf[i];
            index = 1;
        }
        i++;
    }
    if (index > maxlen)
    {
        maxlen = index;
        strcpy(maxbuf, maxbuf2);
        maxbuf[index] = '\0';
    }
    printf("最大串长度:%d,字符串:%s\n", maxlen, maxbuf);
    return 0;
}

输出:


2. 缺失的第一个正数

给你一个未排序的整数数组 nums ,请你找出其中没有出现的最小的正整数。

进阶:你可以实现时间复杂度为 O(n) 并且只使用常数级别额外空间的解决方案吗?

示例 1:

输入:nums = [1,2,0]
输出:3

示例 2:

输入:nums = [3,4,-1,1]
输出:2

示例 3:

输入:nums = [7,8,9,11,12]
输出:1

提示:

  • 0 <= nums.length <= 300
  • -2^31 <= nums[i] <= 2^31 - 1

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

```c++
#include <bits/stdc++.h>
using namespace std;
class Solution
{
public:
    int firstMissingPositive(vector<int> &nums)
    {
        if (nums.size() == 0)
        {
            return 1;
        }
        int i = 0;
        while (i < nums.size())
        {
            ____________________________;
        }
        for (i = 0; i < nums.size(); i++)
        {
            if (nums[i] != i + 1)
            {
                break;
            }
        }
        return i + 1;
    }
};
```

出处:

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

代码:

#include <bits/stdc++.h>
using namespace std;
class Solution
{
public:
    int firstMissingPositive(vector<int> &nums)
    {
        if (nums.size() == 0)
        {
            return 1;
        }
        int i = 0;
        while (i < nums.size())
        {
            if (nums[i] > 0 && nums[i] != i + 1 && nums[i] - 1 < nums.size() && nums[nums[i] - 1] != nums[i])
            {
                swap(nums[i], nums[nums[i] - 1]);
            }
            else
            {
                i++;
            }
        }
        for (i = 0; i < nums.size(); i++)
        {
            if (nums[i] != i + 1)
            {
                break;
            }
        }
        return i + 1;
    }
};
int main()
{
	Solution s;
	vector<int> nums = {1,2,0};
	cout << s.firstMissingPositive(nums) << endl;
	nums = {3,4,-1,1};
	cout << s.firstMissingPositive(nums) << endl;
	nums = {7,8,9,11,12};
	cout << s.firstMissingPositive(nums) << endl;
    return 0;
}

输出:

3
2
1


3. 最大矩形

给定一个仅包含 0 和 1 、大小为 rows x cols 的二维二进制矩阵,找出只包含 1 的最大矩形,并返回其面积。

示例 1:

输入:matrix = [["1","0","1","0","0"],["1","0","1","1","1"],["1","1","1","1","1"],["1","0","0","1","0"]]
输出:6
解释:最大矩形如上图所示。

示例 2:

输入:matrix = []
输出:0

示例 3:

输入:matrix = [["0"]]
输出:0

示例 4:

输入:matrix = [["1"]]
输出:1

示例 5:

输入:matrix = [["0","0"]]
输出:0

提示:

  • rows == matrix.length
  • cols == matrix[0].length
  • 0 <= row, cols <= 200
  • matrix[i][j] 为 '0' 或 '1'

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

```c++
#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
#include <string.h>
static inline int max(int a, int b)
{
    return a > b ? a : b;
}
static int area_calc(int *heights, int size)
{
    int *indexes = malloc(size * sizeof(int));
    int *lhist = malloc(size * sizeof(int));
    int *rhist = malloc(size * sizeof(int));
    int i, pos = 0;
    for (i = 0; i < size; i++)
    {
        while (pos > 0 && heights[indexes[pos - 1]] >= heights[i])
        {
            pos--;
        }
        lhist[i] = pos == 0 ? -1 : indexes[pos - 1];
        indexes[pos++] = i;
    }
    pos = 0;
    for (i = size - 1; i >= 0; i--)
    {
        _________________________;
    }
    int max_area = 0;
    for (i = 0; i < size; i++)
    {
        int area = heights[i] * (rhist[i] - lhist[i] - 1);
        max_area = max(area, max_area);
    }
    return max_area;
}
static int maximalRectangle(char **matrix, int matrixRowSize, int matrixColSize)
{
    int i, j, max_area = 0;
    int *heights = malloc(matrixColSize * sizeof(int));
    memset(heights, 0, matrixColSize * sizeof(int));
    for (i = 0; i < matrixRowSize; i++)
    {
        for (j = 0; j < matrixColSize; j++)
        {
            heights[j] = matrix[i][j] == '1' ? heights[j] + 1 : 0;
        }
        max_area = max(max_area, area_calc(heights, matrixColSize));
    }
    return max_area;
}
int main(int argc, char **argv)
{
    if (argc < 2)
    {
        fprintf(stderr, "Usage: ./test row1 row2...\n");
        exit(-1);
    }
    int i, j;
    int row_size = argc - 1;
    int col_size = strlen(argv[1]);
    for (i = 0; i < row_size; i++)
    {
        printf("%s\n", argv[i + 1]);
    }
    printf("%d\n", maximalRectangle(argv + 1, argc - 1, strlen(argv[1])));
    return 0;
}
```

出处:

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

代码:

#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
#include <string.h>
static inline int max(int a, int b)
{
    return a > b ? a : b;
}
static int area_calc(int *heights, int size)
{
    int *indexes = (int*)malloc(size * sizeof(int));
    int *lhist = (int*)malloc(size * sizeof(int));
    int *rhist = (int*)malloc(size * sizeof(int));
    int i, pos = 0;
    for (i = 0; i < size; i++)
    {
        while (pos > 0 && heights[indexes[pos - 1]] >= heights[i])
        {
            pos--;
        }
        lhist[i] = pos == 0 ? -1 : indexes[pos - 1];
        indexes[pos++] = i;
    }
    pos = 0;
    for (i = size - 1; i >= 0; i--)
    {
        while (pos > 0 && heights[indexes[pos - 1]] >= heights[i])
        {
            pos--;
        }
        rhist[i] = pos == 0 ? size : indexes[pos - 1];
        indexes[pos++] = i;
    }
    int max_area = 0;
    for (i = 0; i < size; i++)
    {
        int area = heights[i] * (rhist[i] - lhist[i] - 1);
        max_area = max(area, max_area);
    }
    return max_area;
}
static int maximalRectangle(char **matrix, int matrixRowSize, int matrixColSize)
{
    int i, j, max_area = 0;
    int *heights = (int*)malloc(matrixColSize * sizeof(int));
    memset(heights, 0, matrixColSize * sizeof(int));
    for (i = 0; i < matrixRowSize; i++)
    {
        for (j = 0; j < matrixColSize; j++)
        {
            heights[j] = matrix[i][j] == '1' ? heights[j] + 1 : 0;
        }
        max_area = max(max_area, area_calc(heights, matrixColSize));
    }
    return max_area;
}
int main()
{
	char* matrix[] = {
	    (char*)"10100",
	    (char*)"10111",
	    (char*)"11111",
	    (char*)"10010"
	};
    printf("%d\n", maximalRectangle(matrix, 4, 5));
    return 0;
}

输出:

6


🌟 每日一练刷题专栏 🌟

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

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

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

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

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

Golang每日一练 专栏

Python每日一练 专栏

C/C++每日一练 专栏

Java每日一练 专栏

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

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

相关文章

SaaS模医学检验信息管理系统源码,系统预设几十种报告模板,可在几分钟内批量生成报告

实验室信息管理系统云LIS源码 SaaS模式运维管理系统 云LIS系统源码是一款全面的实验室信息管理系统源码&#xff0c;其主要功能包括样本管理、检测项目管理、质控管理、报告管理、数据分析、两癌筛查等多个方面。具有独立的配套SaaS模式运维管理系统&#xff0c;支持远程运维&…

Redis高频面试题,使用场景

一、缓存 1、什么是缓存穿透 ? 怎么解决 ? 缓存穿透 查询一个不存在的数据&#xff0c;mysql查询不到数据也不会直接写入缓存&#xff0c;就会导致每次请求都查数据库。 解决 方案一&#xff1a;缓存空数据&#xff0c;查询返回的数据为空&#xff0c;仍把这个空结果进行…

《花雕学AI》28:革命性的 ChatGPT for SEO——让您的排名飙升 50%!

引言&#xff1a; 如果您想写篇有吸引力的文章&#xff0c;或者您是一个博客和网站的拥有者&#xff0c;那么您一定知道 SEO&#xff08;搜索引擎优化&#xff09;的重要性。SEO 可以帮助您提高相应的流量、转化率和收入&#xff0c;但是 SEO 也是一个复杂和耗时的过程&#x…

【开源项目】Dynamic-Tp核心流程源码解读

序.介绍 dynamic-tp 是一款动态线程池组件&#xff0c;可以实现线程池的实时动态调参及监控报警&#xff0c;线程池配置放在配置中心统一管理&#xff0c;达成业务代码零侵入&#xff0c;支持多配置中心的选择和常见的第三方组件的线程池的集成管理。 官网: https://dynamict…

C++学习day--01 C生万物

1、C/C学习中遇到的问题&#xff1a; 1. 大部分初学者&#xff0c;学习 C/C 都是从入门到放弃。 C/C太难吗&#xff1f; 2. 90% 以上的初学者&#xff0c;学完 C/C 以后&#xff0c;考试完了&#xff0c;书看完了&#xff0c; 但还是不会做项目 是学的不够好吗&#xff1…

基于KZG多项式承诺方案的RLN

1. 引言 RLN——Rate-Limiting Nullifier为PSE团队主导的项目&#xff0c;源自&#xff1a; Barry White Hat 2019年博客 Semaphore RLN, rate limiting nullifier for spam prevention in anonymous p2p setting RLN&#xff08;Rate-Limiting Nullifier&#xff09;是一种…

Servlet原理

什么是Servlet? Servlet是JavaWeb应用程序中的一种Java类&#xff0c;用于接收和处理来自客户端的请求&#xff0c;并将生成的响应发送回客户端。 Servlet是按照Java Servlet规范开发的&#xff0c;可以通过Servlet容器&#xff08;如Tomcat&#xff09;来管理和运行。Servl…

二十二、SQL 数据分析实战(案例1~案例10)

文章目录 案例1&#xff1a;用户信息表 stu_table案例2&#xff1a;员工绩效表 score_table案例3&#xff1a;销售冠军信息表 month_table案例4&#xff1a;月销售额记录表 sale_table案例5&#xff1a;每季度员工绩效得分表 score_info_table案例6&#xff1a;员工信息表 stu_…

【大数据】Hadoop总结

本文对于Hadoop中的HDFS和MapReduce的相关面试重点进行了总结&#xff0c;下篇将介绍调优、数据倾斜等进阶知识。 Hadoop总结 一、概述1. Hadoop特性2. HDFS结构HDFS 架构 二、HDFS分布式文件系统1 概述2. HDFS存储数据架构图NameNodeDataNode 3 HDFS优点4 HDFS缺点&#xff08…

利用 Delte-Sigma ADC简化电路设计

很多时候在电路中选择合适的 ADC可以很大程度上简化前端的电路。这里我们一起来看一个电阻电桥的例子&#xff1a; 这里用到了一只仪表放大器和一只运算放大器&#xff0c;他们实际上主要完成了三个功能&#xff1a; 1. 抑制了 2.5V的共模信号&#xff1b; 2. 将-1…

「业务架构」波特的五力分析教程介绍

波特五力分析模型最早出现在哈佛商学院教授迈克尔E波特1979年发表在《哈佛商业评论》上的文章中。这篇论文的发表在历史上改变了企业、组织甚至国家对战略的理解。自《哈佛商业评论》创刊以来&#xff0c;它被评为十大最具影响力的论文之一。 五力分析可以帮助公司评估行业吸引…

Baumer工业相机堡盟工业相机如何联合BGAPISDK和Halcon实现图像的对数Log变换算法增强(C#)

Baumer工业相机堡盟工业相机如何联合BGAPISDK和Halcon实现图像的对数Log变换算法增强&#xff08;C#&#xff09; Baumer工业相机Baumer工业相机使用图像算法增加图像的技术背景Baumer工业相机通过BGAPI SDK联合Halcon使用Log图像增强算法1.引用合适的类文件2.BGAPI SDK在图像回…

【ChatGLM】本地版ChatGPT ?6G显存即可轻松使用 !ChatGLM-6B 清华开源模型本地部署教程

目录 感谢B站秋葉aaaki大佬 前言 部署资源 部署流程 实机演示 ChatGML微调&#xff08;人格炼成&#xff09;&#xff08;个人感觉蛮有趣的地方&#xff09; 分享有趣の微调人格 实机演示&#xff08;潘金莲人格&#xff09; 感谢B站秋葉aaaki大佬 秋葉aaaki的个人空间…

《可穿戴监测中的数据质量评估》阅读笔记

目录 一、论文摘要 二、论文十问 三、论文亮点与不足之处 四、与其他研究的比较 五、实际应用与影响 六、个人思考与启示 参考文献 一、论文摘要 从手腕捕获的神经生理信号的可穿戴记录为癫痫监测提供了巨大的潜力。然而&#xff0c;数据质量仍然是影响数据可靠性的最具…

康耐视Visionpro常见问题汇总-视觉人机器视觉粉丝-千问之六十五解答

(2023年5月2日更,下次更新2023年10月1日-10月7日) Question0: 康耐视visionpro9.8/9.9-BeadInspect工具详细使用流程 原因分析或解决办法 康耐视visionpro9.8-BeadInspect工具详细使用流程 (qq.com) Question1: C#与visisionpro联合开发exe文件开机启动设置 原因分析…

Java 基础进阶篇(八)—— 匿名内部类与 Lambda 表达式

文章目录 一、内部类概述二、需要了解的内部类2.1 静态内部类2.2 成员内部类2.3 局部内部类2.4 面试笔试题 三、匿名内部类 ★四、Lambda表达式 ★4.1 Lambda 表达式的概述4.2 Lambda 表达式的省略规则4.3 Lambda 的使用 一、内部类概述 内部类就是定义在一个类里面的类&#…

SPSS如何管理数据之案例实训?

文章目录 0.引言1.数据文件的分解2.数据文件的横向合并3.数据文件的纵向合并4.数据文件的变换5.观测量的加权6.根据已存在的变量建立新变量7.产生计数变量8.对变量自身重新赋值9.赋值生成新的变量10.变量取值的求等级11.缺失数据的处理12.数据的汇总13.由变量组到观测量组的重组…

hd debug - DAPLink的资料

文章目录 DAPLink的资料概述笔记库迁出的技巧END DAPLink的资料 概述 查资料时, 看到有DAPLink的资料, 记录一下. 笔记 DAPLink项目分为软件和硬件2部分, 不在一个库中. 总览 : https://daplink.io/ 这个页面上说了软件和硬件项目的库地址. 软件库地址 : https://github.…

余弦相似度算法进行客户流失分类预测

余弦相似性是一种用于计算两个向量之间相似度的方法&#xff0c;常被用于文本分类和信息检索领域。具体来说&#xff0c;假设有两个向量A和B&#xff0c;它们的余弦相似度可以通过以下公式计算&#xff1a; 其中&#xff0c;dot_product(A, B)表示向量A和B的点积&#xff0c;no…

什么是链接库 | 动态库与静态库

欢迎关注博主 Mindtechnist 或加入【Linux C/C/Python社区】一起学习和分享Linux、C、C、Python、Matlab&#xff0c;机器人运动控制、多机器人协作&#xff0c;智能优化算法&#xff0c;滤波估计、多传感器信息融合&#xff0c;机器学习&#xff0c;人工智能等相关领域的知识和…