C/C++每日一练(20230510) 编辑距离、多数元素、数列累和

news2024/11/24 3:24:38

目录

1. 编辑距离  🌟🌟🌟

2. 多数元素  🌟

3. 求分数数列的前N项和  ※

🌟 每日一练刷题专栏 🌟

Golang每日一练 专栏

Python每日一练 专栏

C/C++每日一练 专栏

Java每日一练 专栏


1. 编辑距离

给你两个单词 word1 和 word2,请你计算出将 word1 转换成 word2 所使用的最少操作数 。

你可以对一个单词进行如下三种操作:

  • 插入一个字符
  • 删除一个字符
  • 替换一个字符

示例 1:

输入:word1 = "horse", word2 = "ros"
输出:3
解释:horse -> rorse (将 'h' 替换为 'r')rorse -> rose (删除 'r')rose -> ros (删除 'e')

示例 2:

输入:word1 = "intention", word2 = "execution"
输出:5
解释:intention -> inention (删除 't')inention -> enention (将 'i' 替换为 'e')enention -> exention (将 'n' 替换为 'x')exention -> exection (将 'n' 替换为 'c')exection -> execution (插入 'u')

提示:

  • 0 <= word1.length, word2.length <= 500
  • word1 和 word2 由小写英文字母组成

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

```c++
#include <bits/stdc++.h>
using namespace std;
class Solution
{
public:
    int minDistance(string word1, string word2)
    {
        int l1 = word1.length();
        int l2 = word2.length();
        vector<int> dp(l2 + 1);
        for (int i = 0; i <= l2; i++)
        {
            dp[i] = i;
        }
        int up = 0;
        for (int i = 1; i <= l1; i++)
        {
            int left_up = dp[0];
            dp[0] = i;
            for (int j = 1; j <= l2; j++)
            {
                up = dp[j];
                _________________________;
                else
                {
                    dp[j] = 1 + min(left_up, min(up, dp[j - 1]));
                }
                left_up = up;
            }
        }
        return dp[l2];
    }
};
```

出处:

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

代码:

#include <bits/stdc++.h>
using namespace std;
class Solution
{
public:
    int minDistance(string word1, string word2)
    {
        int l1 = word1.length();
        int l2 = word2.length();
        vector<int> dp(l2 + 1);
        for (int i = 0; i <= l2; i++)
        {
            dp[i] = i;
        }
        int up = 0;
        for (int i = 1; i <= l1; i++)
        {
            int left_up = dp[0];
            dp[0] = i;
            for (int j = 1; j <= l2; j++)
            {
                up = dp[j];
                if (word1[i - 1] == word2[j - 1])
                {
                    dp[j] = left_up;
                }
                else
                {
                    dp[j] = 1 + min(left_up, min(up, dp[j - 1]));
                }
                left_up = up;
            }
        }
        return dp[l2];
    }
};

int main()
{
	Solution s;
	string word1 = "horse";
	string word2 = "ros";
    cout << s.minDistance(word1, word2) << endl;
    word1 = "intention";
	word2 = "execution";
	cout << s.minDistance(word1, word2) << endl;
	
	return 0;
}

输出:

3
5


2. 多数元素

给定一个大小为 的数组,找到其中的多数元素。多数元素是指在数组中出现次数 大于 ⌊ n/2 ⌋ 的元素。

你可以假设数组是非空的,并且给定的数组总是存在多数元素。

示例 1:

输入:[3,2,3]
输出:3

示例 2:

输入:[2,2,1,1,1,2,2]
输出:2

进阶:

  • 尝试设计时间复杂度为 O(n)、空间复杂度为 O(1) 的算法解决此问题。

出处:

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

代码:

#include <bits/stdc++.h>
using namespace std;
class Solution
{
public:
    int majorityElement(vector<int> &nums)
    {
        unordered_map<int, int> counts;
        int majority = 0, cnt = 0;
        for (int num : nums)
        {
            ++counts[num];
            if (counts[num] > cnt)
            {
                majority = num;
                cnt = counts[num];
            }
        }
        return majority;
    }
};

int main()
{
	Solution s;
	vector<int> nums = {3,2,3};
    cout << s.majorityElement(nums) << endl;
    nums = {2,2,1,1,1,2,2};
	cout << s.majorityElement(nums) << endl;
	
	return 0;
}

输出:

3
2


3. 求分数数列的前N项和

有一分数序列:2/1,-3/2,5/3,-8/5,13/8,-21/13,…, 由用户输入项目数N,求这个数列的前N 项之和

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

```c++
#include <stdlib.h>
#include <stdio.h>
int main()
{
    int n;
    scanf("%d", &n);
    int i;
    double a1 = 2, b1 = 1;
    double a2 = 3, b2 = 2;
    double sum = a1 / b1 - a2 / b2;
    if (n == 1)
        printf("%f\n", a1 / b1);
    else if (n == 2)
        printf("%f\n", sum);
    else
    {
        for (i = 0; i < n - 2; i++)
        {
            double exp = a2 / b2;
            _____________________;
            sum += exp;
            double a = a1 + a2;
            double b = b1 + b2;
            a1 = a2;
            b1 = b2;
            a2 = a;
            b2 = b;
        }
        printf("%f\n", sum);
    }
    return 0;
}
```

出处:

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

代码:

#include <stdlib.h>
#include <stdio.h>
int main()
{
    int n;
    scanf("%d", &n);
    int i;
    double a1 = 2, b1 = 1;
    double a2 = 3, b2 = 2;
    double sum = a1 / b1 - a2 / b2;
    if (n == 1)
        printf("%f\n", a1 / b1);
    else if (n == 2)
        printf("%f\n", sum);
    else
    {
        for (i = 0; i < n - 2; i++)
        {
            double exp = a2 / b2;
            if (i % 2 == 0)
                exp *= -1;
            sum += exp;
            double a = a1 + a2;
            double b = b1 + b2;
            a1 = a2;
            b1 = b2;
            a2 = a;
            b2 = b;
        }
        printf("%f\n", sum);
    }
    return 0;
}

输出:

6
0.691667


🌟 每日一练刷题专栏 🌟

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

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

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

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

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

Golang每日一练 专栏

Python每日一练 专栏

C/C++每日一练 专栏

Java每日一练 专栏

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

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

相关文章

OpenCV教程——Mat对象

1.Mat对象和IplIamge对象 Mat对象是OpenCV2.0之后引进的图像数据结构、自动分配内存、不存在内存泄漏的问题&#xff0c;是面向对象的数据结构。分为两个部分&#xff1a;头部和数据部分。IplIamge是从2001年OpenCV发布之后就一直存在&#xff0c;是C语言风格的数据结构&#…

笔记本电脑没有声音怎么办?5个必会方法分享

案例&#xff1a;笔记本电脑没有声音怎么办&#xff1f; 【我的笔记本电脑为什么会没有声音呢&#xff1f;看视频听音乐一点声音都没有&#xff0c;实在太烦人了&#xff01;应该怎么解决呢&#xff1f;】 笔记本电脑逐渐成为人们工作生活必备的工具。如果笔记本电脑没有声音…

怎样检测和维护LED显示屏系统

检测和维护LED显示屏系统是确保其正常运行和延长寿命的重要步骤。以下是一些常见的检测和维护LED显示屏系统的方法&#xff1a; 视觉检查&#xff1a;定期进行视觉检查以确保LED显示屏没有明显的损坏或故障。检查显示屏表面是否有损坏、裂纹或漏光等情况。如果发现任何问题&…

ChatGPT作者John Schulman:通往TruthGPT之路

OneFlow编译 翻译&#xff5c;贾川、徐佳渝、杨婷 大型语言模型&#xff08;LLM&#xff09;有一个众所周知的“硬伤”——它们经常会一本正经编造貌似真实的内容。 OpenAI团队希望通过改进强化学习反馈步骤“原生地”阻止神经网络产生幻觉&#xff0c;OpenAI首席科学家Ilya …

spark-sql 报错:Exception thrown flushing changes to datastore

报错背景 hive创建数据库时添加中文备注信息报错。 命令&#xff1a;CREATE DATABASE IF NOT EXISTS hive_ods_db COMMENT Hive ODS层数据库; 报错现象 FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. MetaException(message:Excep…

递归行为与归并排序

master公式 T(N)a*T(N/b)O(N^d) T(N)&#xff1a;问题的规模是N个数据 N/b&#xff1a;子过程的规模 a&#xff1a;调用的次数 O(N^d) &#xff1a;除子问题的调用之外&#xff0c;剩余的代码的时间复杂度 使用条件&#xff1a;满足子问题等规模的递归 arr[L,R]范围…

49天精通Java,第27天,队列、双端队列、优先队列

目录 一、队列与双端队列二、Queue和Deque三、api对比1、add和offer区别2、remove和poll3、element和peek 四、优先队列1、PriorityQueue常用方法2、ArrayDeque常用方法 大家好&#xff0c;我是哪吒。 一、队列与双端队列 双端队列是一种特殊的队列&#xff0c;它的两端都可以…

吴军《计算之魂》读后感

前言 断断续续&#xff0c;终于完成了这本书的第一次通读&#xff0c;记录下自己的一些想法。 先说一个小故事。前段时间家里买了一个小鱼缸&#xff0c;问我有没有办法让水自动循环&#xff0c;但不想用电。没有好的想法&#xff0c;去小某书上搜了下&#xff0c;好多案例教…

【哈士奇赠书活动 - 18期】-〖Flask Web全栈开发实战〗

文章目录 ⭐️ 赠书活动 - 《Flask Web全栈开发实战》⭐️ 编辑推荐⭐️ 内容提要⭐️ 赠书活动 → 获奖名单 ⭐️ 赠书活动 - 《Flask Web全栈开发实战》 内容简介&#xff1a; 《Flask Web全栈开发实战》围绕 Flask 框架&#xff0c;详细地讲解了使用 Flask 开发网站的各项技…

vue2项目中使用本机图片的一些问题

前后端分离项目&#xff0c;&#xff08;vue2springboot2.6.3) 前端上传图片&#xff0c;后端将图片保存在本地。当前端使用上传的图片时出现的一些问题说明。 前端上传图片文件&#xff0c;后端接收到图片文件后将图片保存到vue项目的src/assets/club目录下&#xff0c;如下…

VMware vSphere Replication 8.7 (for vSphere 8.0U1) - 虚拟机复制和数据保护

请访问原文链接&#xff1a;https://sysin.org/blog/vmware-vsphere-replication-8/&#xff0c;查看最新版。原创作品&#xff0c;转载请保留出处。 作者主页&#xff1a;sysin.org 新增功能 vSphere Replication 8.7 | 2023 年 4 月 18 日 | 内部版本 21591677 vSphere Re…

GPT4.0+Midjourney=最佳组合,简单玩法

以下是我设计的一个简单的组合玩法&#xff0c;操作如下&#xff1a; 问gpt4: Here is a MidJourney Prompt Formula: A detailed image of [Subject] [doing something interesting] during [time of day], taken with a [type of camera], using [type of lens] with cinema…

ChatGPT会对我们日常生活带来什么影响?这些技术会改变我们学习阅读工作方式吗?

ChatGPT会对我们日常生活带来什么影响&#xff1f;这些技术会改变我们学习阅读工作方式吗&#xff1f; AI 这个话题很火&#xff0c;我也一直在关注着&#xff0c;很多人甚至觉得 AI 会改变世界&#xff0c;也许你会好奇&#xff1a;ChatGPT 会在三年内终结编程吗&#xff1f;A…

基于gitlab搭建Drone CI

drone简介&#xff1a; drone官方文档&#xff1a;https://docs.drone.io/ drone跟Jenkins一样&#xff0c;可实现持续集成&#xff0c;就是可以帮助我们解决重复的代码构建&#xff0c;自动化测试&#xff0c;发布等重复劳动&#xff0c;通过简单一个提交代码的动作&#xff…

Text-to-3D 任务论文笔记: Latent NeRF

文章目录 概述相关工作3D形状合成使用2D监督的text-to-3D 任务 方法前置知识LDMScore Distillation Latent NeRF文本引导RGB refinementSketch-Shape Guidance对于显式形状的Latent-Paint 实验实验细节文本引导的生成RGB RefinementTextual-Inversion Sketch-Shape GuidanceLat…

使用Handler创建一个Android秒表应用

0、应用是一个有活动、布局和其他资源组成的集合。其中一个活动是应用的主活动。每个应用都有一个主活动&#xff0c;在文件AndroidManifest.xml中指定。 1、默认地&#xff0c;每个应用都在自己的进程中运行。这样有助于保证应用安全。 2、但是可以使用startActivity(intent)传…

信息安全支撑技术

信息安全支撑技术 密码学密码学发展古典密码近代密码学现代密码学 基本保密通信模型密码系统的安全性密码学技术在信息安全中的应用对称密码算法非对称密码算法其他密码服务哈希函数消息认证码数字签名 公钥基础设施&#xff08;PKI&#xff09;CA&#xff1a;认证权威RA&#…

九耶丨阁瑞钛伦特-SpringCloud(六)

Spring Cloud Config 是一个基于 Spring Boot 实现的分布式配置管理工具&#xff0c;它专注于管理各种环境中的应用程序配置&#xff0c;例如开发环境、测试环境和生产环境等。它提供了一个集中的配置服务器&#xff0c;允许在运行时动态地管理和更新应用程序的配置信息&#x…

10 个超赞的 C 语言开源项目

今天给大家分享10个超赞的C语言开源项目&#xff0c;希望这些内容能对大家有所帮助&#xff01; 01 Webbench Webbench是一个在 Linux 下使用的非常简单的网站压测工具。 它使用fork()模拟多个客户端同时访问我们设定的URL&#xff0c;测试网站在压力下工作的性能。 最多可以…

Unity版本使用情况统计(更新至2023年4月)

本期UWA发布的内容是第十二期Unity版本使用统计&#xff0c;统计周期为2022年11月至2023年4月&#xff0c;数据来源于UWA网站&#xff08;www.uwa4d.com&#xff09;性能诊断提测的项目。希望给Unity开发者提供相关的行业趋势&#xff0c;了解近半年来哪些Unity版本的使用概率更…