头歌资源库(18)接龙序列

news2024/10/5 16:21:15

一、 问题描述

 二、算法思想  

       首先,我们需要判断一个数列是否是接龙数列。可以通过遍历数列的每一个元素,判断该元素的首位数字是否等于前一个元素的末位数字。如果所有元素都满足条件,则该数列是接龙数列。

       接下来,我们需要计算最少删除多少个数才能将数列变成接龙数列。可以使用动态规划的方法解决这个问题。令dp[i]表示长度为i的数列中最少删除的数的个数。对于dp[i],我们可以分为两种情况来考虑:

  1. 删除第i个数,即dp[i] = dp[i-1] + 1;
  2. 保留第i个数,即dp[i] = dp[i-1]。

       然后,我们需要判断第i个数是否可以和第i-1个数连接起来形成一个接龙数列。如果可以,则dp[i]取上述两种情况中较小的一个;如果不可以,则只能删除第i个数。

最后,我们取dp数组中的最大值作为最终答案,即为最少删除的数的个数。

具体实现时,我们可以使用一个辅助数组numCount来记录每个首位数字的出现次数。遍历数列的每一个元素,判断该元素的首位数字是否等于前一个元素的末位数字,然后更新numCount数组和dp数组。最后返回dp数组中的最大值即可。

三、代码实现 

#include<stdio.h>
int main()
{
    int a=0,b=0;
    int n=0,amount=0;
    int dp[10]={0},number=0;
    scanf("%d",&n);
    for(int i=0;i<n;i++)
    {
            scanf("%d",&number);
            b=number%10;
            while(number>=10)
            {
                a=number/10;
                number/=10;
            }
            dp[b]=dp[a]+1>dp[b]?dp[a]+1:dp[b];
            if(dp[b]>amount)
            {
                amount=dp[b];
            }
    }
        printf("%d",n-amount);
}

执行结果   

 结语  

志在山顶的人

不会贪念山腰的风景

!!!

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

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

相关文章

Java | Leetcode Java题解之第201题数字范围按位与

题目&#xff1a; 题解&#xff1a; class Solution {public int rangeBitwiseAnd(int m, int n) {while (m < n) {// 抹去最右边的 1n n & (n - 1);}return n;} }

Java | Leetcode Java题解之第202题快乐数

题目&#xff1a; 题解&#xff1a; class Solution {private static Set<Integer> cycleMembers new HashSet<>(Arrays.asList(4, 16, 37, 58, 89, 145, 42, 20));public int getNext(int n) {int totalSum 0;while (n > 0) {int d n % 10;n n / 10;totalS…

在eclipse中导入idea项目步骤

一、可以把其它项目的.project&#xff0c; .classpath文件拷贝过来&#xff0c;修改相应的地方则可。 1、.project文件只需要修改<name>xxx</name>这个项目名称则可 2、.classpath文件通常不用改&#xff0c; 二、右击 项目名 >选择“Properties”>选择 Re…

【2024-热-办公软件】ONLYOFFICE8.1版本桌面编辑器测评

在今日快速发展的数字化办公环境中&#xff0c;选择一个功能全面且高效的办公软件是至关重要的。最近&#xff0c;我有幸体验了ONLYOFFICE 8.1版本的桌面编辑器&#xff0c;这款软件不仅提供了强大的编辑功能&#xff0c;还拥有众多改进&#xff0c;让办公更加流畅和高效。在本…

C++ | Leetcode C++题解之第202题快乐数

题目&#xff1a; 题解&#xff1a; class Solution { public:int ProductSum(int n){int sum 0;while(n){int temp n % 10;sum temp*temp;n / 10;}return sum;}bool isHappy(int n) {int slow n,fast n;// 快慢指针&#xff0c;找环的相遇位置do{slow ProductSum(slow)…

58.鸿蒙系统app(HarmonyOS)(ArkUI)更改应用程序图标

替换xx\MyApplication4.30\entry\src\main\resources\base\media目录下icon.png文件 54.HarmonyOS鸿蒙系统 App(ArkTS)tcp socket套接字网络连接收发测试_鸿蒙socket连接测试-CSDN博客

Vuetify3:​快捷回到顶部

在Vuetify 3中&#xff0c;要实现回到顶部&#xff0c;我们需要创建悬浮按钮&#xff0c;如下&#xff1a; <template><v-list><div class"position-fixed right-0 bottom-0" style"top:50%;"><v-list-item ><v-btn icon"…

第十节 动态面板实现推动和拉动效果

在原型设计中我们经常会遇到元件使用显示更多或者收起效果&#xff0c;下面以面板元件推动与拉动效果做案件说明。 一、设置原有内容 我这里添加一个表格内容&#xff0c;添加“显示更多”文本超链接 二、设置在更多显示面板内容 添加一个动态面板&#xff0c;设置有内容、无…

Linux运维:MySQL数据库(1)

1.信息与数据&#xff1a; 数据是信息的载体&#xff0c;信息是数据的内涵。数据库就是存储数据的仓库&#xff0c;并长期存储在计算机磁盘中&#xff0c;可由多个用户和应用程序共享的数据集合&#xff0c;就是数据库。 2.数据库中的数据的特点&#xff1a; 2.1.数据是按照某…

【Docker】创建 swarm 集群

目录 1. 更改防火墙设置 2. 安装 Docker 组件 3. 启动 Docker 服务&#xff0c;并检查服务状态。 4. 修改配置文件&#xff0c;监听同一端口号。 5. 下载 Swarm 组件 6. 创建集群&#xff0c;加入节点 7. 启动集群 8. 查询集群节点信息 9. 查询集群具体信息 10. 查询…

vscode 安装Vue插件

打开扩展面板 --> 点击左侧的扩展图标&#xff0c;或者按下快捷键 Ctrl Shift X 搜索插件,在搜索框中输入 Vue vue-helper 用来快捷提示&#xff0c;如果使用elementui的话&#xff0c;插件不会自动提示&#xff0c;安装了它&#xff0c;组件、属性都会有提示了 Vetur V…

live555的核心数据结构值之闭环双向链表

live555是采用单进程,单线程的服务器,能够同时支持多个客户端连接,并且有条不紊的进行媒体流的调度,很大一部分原因在于对数据结构的巧妙应用。 下面介绍live555核心的数据结构:闭环双向链表 什么是闭环双向链表? 描述: 一个节点保存有前一个节点的地址和后一个节点的…

Spring自带的持久层模板类:JdbcTemplate+Spring框架声明式事务管理实战

模板技术 Spring框架中提供了很多模板类来简化编程&#xff0c;使用模板类编写程序会变的简单 持久层模板JdbcTemplate JdbcTemplate是什么 JDBCTemplate是Spring Framework中的一个核心类&#xff0c;用于简化JDBC&#xff08;Java数据库连接&#xff09;代码的编写。它提供…

4A的「A」会变成AI的「A」吗?

戛纳国际创意节上&#xff0c;广告集团WPP的全球CEO Mark Read 和英国CEO Karen Blackett 解释了WPP如何应对AIGC所带来的「威胁」。同时&#xff0c;Mark Read 与Elon Musk对话&#xff0c;讨论「技术创新的变革力量&#xff0c;人工智能如何重塑创造力、商业和社会&#xff0…

基于uni-app与图鸟UI的移动应用模板构建研究

摘要 随着移动互联网技术的迅猛发展&#xff0c;移动端应用已成为企业展示形象、提供服务的重要窗口。本文基于uni-app框架和图鸟UI设计&#xff0c;深入探讨了如何高效构建覆盖多个领域的移动端应用模板。通过对商城、办公、投票、生活服务等多种类型模板的详细介绍&#xff…

使用uniapp.pageScrollTo方法进行页面滚动

先看看是不是你想要的&#xff1a; 需求&#xff1a; 有个填写数据的单子在提交的时候&#xff0c;会对必填项做校验&#xff0c;如果必填项没有数据的话&#xff0c;必填项校验生效给出提示&#xff0c;并且页面滚动到第一个需要填写数据的地方。 开发&#xff1a; 因为这个…

Ubuntu无法安全地用该源进行更新,所以默认禁用该源。

解决方案 1. 获取并添加缺失的 GPG 公钥 可以使用 apt-key 命令来添加缺失的公钥。根据错误信息&#xff0c;缺失的公钥是 3B4FE6ACC0B21F32。 sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 3B4FE6ACC0B21F322. 更新软件包列表 添加公钥后&#xff0c;更…

[Go Web] Kratos 验证码业务

文章目录 1.环境准备2.验证码服务2.1 kratos 初始化验证码服务项目2.2 使用 Protobuf 定义验证码生成接口2.3 业务逻辑代码实现 1.环境准备 protoc和protoc-gen-go插件安装和kratos工具安装 protoc下载 下载二进制文件&#xff1a;https://github.com/protocolbuffers/protobu…

智能体实战:开发一个集成国内AI平台的GPTs,自媒体高效智能助手

文章目录 一&#xff0c;什么是GPTs二&#xff0c;开发GPTs1&#xff0c;目标2&#xff0c;开发2.1 打开 GPTS&#xff1a;https://chat.openai.com/gpts2.2 点击 Create 创建一个自己的智能体 2.3 配置GPTs2.4 配置外挂工具2.4.1 配置Authentication-授权2.4.1.1 生成语聚AI的…

kafka consumer客户端消费逻辑解析

kafka consumer客户端消费逻辑解析 一、主要消费步骤二、提交策略【步骤2代码解析】【提交策略总结】 三、拉取策略&#xff08;待补充&#xff09;四、消费策略【代码解析】【消费策略总结】 一、主要消费步骤 这是kafka客户端拉取消息的入口&#xff0c;有4个主要部分 1、启…