c ++递归算法数的计数_C ++程序使用数组中的递归查找数字的最后一次出现

c ++递归算法数的计数

Given an array of length N and an integer x, you need to find and return the last index of integer x present in the array. Return -1 if it is not present in the array. Last index means - if x is present multiple times in the array, return the index at which x comes last in the array.

给定长度为N和整数x的数组,您需要查找并返回数组中存在的整数x的最后一个索引。 如果数组中不存在,则返回-1。 Last index表示-如果x在数组中多次出现,则返回x在数组中最后出现的索引。

You should start traversing your array from 0, not from (N - 1). Do this recursively. Indexing in the array starts from 0.

您应该从0开始遍历数组,而不是从(N-1)开始遍历数组。 递归执行此操作。 数组中的索引从0开始。

Input Format:

输入格式:

  • Line 1 : An Integer N i.e. size of array

    第1行:整数N,即数组的大小

  • Line 2 : N integers which are elements of the array, separated by spaces

    第2行: N个整数,它们是数组的元素,以空格分隔

  • Line 3 : Integer x

    第3行:整数x

Output Format: last index or -1

输出格式:最后一个索引或-1

Constraints: 1 <= N <= 10^3

限制条件: 1 <= N <= 10 ^ 3

Example

    Input:
4
9 8 10 8
8
Output:
3

Description:

描述:

Here, we have to find the last occurrence of x. Therefore, in this example the last occurrence of 8 happens in index 3, and hence the output is 3.

在这里,我们必须找到x的最后一次出现。 因此,在此示例中,最后一次出现8发生在索引3中,因此输出为3。

Algorithm:

算法:

Step 1: To solve this using recursion, make a recursion function with inputs, and a variable currIndex to traverse the input array.

步骤1:要使用递归解决此问题,请使用输入创建递归函数,并使用变量currIndex遍历输入数组。

Step2: Base Case:- If currIndex == size of the input array, return -1, i.e element not found.

步骤2:基本情况:-如果currIndex ==输入数组的大小,则返回-1,即找不到元素。

Step3: Take input of next recursion call ,withcurrIndex incremented by 1 , in a variable ‘index’.

步骤3:在变量“ index”中,获取下一个递归调用的输入,其currIndex递增1。

Step 4:
If(index == -1 && input[currIndex] == x)
Return currIndex
Else
Return index;

第4步:
If(索引== -1 &&输入[currIndex] == x)
返回currIndex
其他
返回索引;

C ++源代码/功能: (C++ Source Code/Function:)

#include<bits/stdc++.h>
using namespace std;
int lastIndex(int input[], int size, int x, int currIndex){
if(currIndex== size){
return -1;
}
int index = lastIndex(input,size,x,currIndex+1);
if(index == -1 && input[currIndex] == x){
return currIndex;
}
else{
return index;
}
}
int main(){
int input[] = {9,8,10,8};
int x = 8;
int size = 4;
cout<<lastIndex(input,size,x,0);
return 0;
}

Output

输出量

3

翻译自: https://www.includehelp.com/cpp-programs/find-last-occurrence-of-a-number-using-recursion-in-an-array.aspx

c ++递归算法数的计数

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

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

相关文章

关于递归的理解

之前看了许多关于递归的理解&#xff0c;还是是懂非懂的&#xff0c;这个问题一直纠结在心里。 今天又碰到这个递归问题了&#xff0c;我认为一定要把问题分析清楚了&#xff0c;以后再遇到这样的问题或者类似问题才能轻车熟路&#xff0c;不然又要头疼或者成为问题的瓶颈了。 …

CPU使用率的查看以及性能分析(perf top/record/report)

目录CPU使用率查看CPU使用率&#xff08;top、pidstat解释&#xff09;CPU使用率过高perf topperf record 和 perf reportCPU使用率 Linux通过/proc虚拟文件系统&#xff0c;向用户空间提供了系统内部状态的信息。 /proc/stat提供的就是系统的CPU和任务统计信息。 执行命令cat…

OpenSSL再曝CCS注入漏洞-心伤未愈又成筛子

太戏剧了&#xff0c;昨晚看了佳片有约&#xff0c;还不错&#xff0c;2012版的《完美回顾》&#xff0c;像我这样的人依旧选择用电视或者去影院看电影&#xff0c;在没有中间插播广告的时候&#xff0c;体验憋尿得过程中&#xff0c;总是能突然有非常多的想法&#xff0c;这是…

如何从JavaScript数组中获取多个随机唯一元素?

The JavaScript is a very versatile language and it has a function almost everything that you want. JavaScript是一种非常通用的语言&#xff0c;它几乎具有您想要的所有功能。 Here, we will show you how to generate random unique elements from an array in JavaSc…

用SQL语句添加删除修改字段

1.增加字段 alter table docdsp add dspcodechar(200)2.删除字段 ALTER TABLE table_NAME DROP COLUMNcolumn_NAME3.修改字段类型 ALTER TABLE table_name ALTER COLUMNcolumn_name new_data_type4.sp_rename 改名 EXEC sp_rename [dbo].[Table_1].[fi…

通过命令修改wampserver的mysql密码

WAMP安装好后&#xff0c;mysql教程密码是为空的&#xff0c;那么要如何修改呢&#xff1f;其实很简单&#xff0c;通过几条指令就行了&#xff0c;下面我就一步步来操作。 首先&#xff0c;通过WAMP打开mysql控制台。 提示输入密码&#xff0c;因为现在是空&#xff0c;所以直…

DBNull

1、执行ExecuteScalar时&#xff0c;要进行Null判断&#xff0c;因为对Null进行操作会报&#xff1a;NullReferenceException 2、返回DBNull的情况&#xff0c;因为DBNull是用来表示数据库中Null的&#xff0c;所以如果数据中返回null&#xff0c;程序中就是DBNull&#xff0c…

什么是ACID理论(二阶段、三阶段提交、TCC)

目录二阶段提交协议TCC&#xff08;Try-Confirm-Cancel&#xff09;预留成功预留失败三阶段提交协议总结Some questionsreferenceACID理论时对事务特性的抽象和总结&#xff0c;想要实现ACID需要掌握二阶段提交协议以及TCC 这里是有关协议的论文PDF链接&#xff1a; CONCURRENC…

oracle安装后新建数据库实例及配置

ORA-12514 TNS 监听程序当前无法识别连接描述符中请求服务 的解决方法 (2011-01-20 13:50:37) 转载▼标签&#xff1a; it 分类&#xff1a; 技术早上同事用PL/SQL连接虚拟机中的Oracle数据库&#xff0c;发现又报了“ORA-12514 TNS 监听程序当前无法识别连接描述符中请求服务…

html5游戏开发--动静结合(二)-用地图块拼成大地图 初探lufylegend

一、前言 本次教程将向大家讲解如何用html5将小地图块拼成大地图&#xff0c;以及如何用现有的高级html5游戏开发库件lufylegend.js开发游戏。 首先让我们来了解了解如何用html5实现动画&#xff0c;毕竟“动静结合”是先有动再有静。看了上一章的内容&#xff0c;或许你就有了…

BASE理论(基本可用策略+ 最终一致性实现)

目录实现基本可用的几个策略1、流量削峰&#xff08;不同地区售票时间错峰出售&#xff09;2、延迟响应&#xff0c;异步处理&#xff08;买票排队&#xff0c;基于队列先收到用户买票请求&#xff0c;排队异步处理&#xff0c;延迟响应&#xff09;3、体验降级&#xff08;看到…

一天一道算法题--6.15--卡特兰数

感谢微信平台---一天一道算法题---每天多一点进步- problem: 12个高矮不同的人 排成两排 每排必须是从矮到高排列 而且第二行比对应的第一排的人高 问排列方式有多少种&#xff1f; analyse: 据说 这题 是来自于 阿里巴巴的面试题 果然 很有分量 ~~ 我反正 胡思乱想了好多 没搞…

现有一些开源ESB总线的比較

现有的开源ESB总线中&#xff0c;自从2003年第一个开源总线Mule出现后&#xff0c;如今已经是百花争鸣的景象了。如今我就对现有的各种开源ESB总线根据性能、可扩展性、资料文档完整程度以及整合难易程度等方面展开。 一&#xff0e;CXF CXF的定位不是ESB总线&#xff0c;而是一…

Paxos算法(Basic Paxos 与 Multi-Paxos思想)

目录Basic Paxos三个角色达成共识的方法对于Basic Paxos的总结Multi-Paxos领导者优化 Basic Paxos 执行referencePaxos 算法包含 2 个部分&#xff1a; 1、Basic Paxos &#xff1a; 描述多节点之间如何就某个值达成共识 2、Multi-Paxos &#xff1a; 描述执行多个Basic Paxos实…

vs2012下调试mvc4源代码

当前流行的应该是mvc3才对。然后在研究mvc3的源代码时候&#xff0c;Html这个属性下的扩展方法Partial()都没有。IntelliSense不会提示该方法&#xff0c;找了半天的资料也问了一些博友&#xff0c;没看到好的解决棒法。最后没辙另辟蹊跷&#xff0c;就开始着手研究mvc4的源代码…

JAVA UDP网络编程学习笔记

一、UDP网络编程概述 采用TCP协议通信时&#xff0c;客户端的Socket必须先与服务器建立连接&#xff0c;连接建立成功后&#xff0c;服务器端也会持有客户端连接的Socket&#xff0c;客户端的Socket与服务器端的Socket是对应的&#xff0c;它们构成了两个端点之间的虚拟通信链路…

firefox 插件开发

IDE&#xff0c;你可以尝试下NetBeans foxbeans这个插件。转载于:https://www.cnblogs.com/sode/archive/2013/01/25/2876562.html

13种负载均衡算法

目录前言&#xff08;1&#xff09;轮转调度&#xff08;Round-Robin Scheduling&#xff09;算法&#xff08;2&#xff09;加权轮转调度&#xff08;Weighted Round-Robin Scheduling&#xff09;算法&#xff08;3&#xff09;随机均衡调度&#xff08;Random Scheduling&am…

对于shell脚本参数获取时的一点小技巧

问题如下&#xff1a; 根据脚本参数的个数$#进行一个循环&#xff0c;在依次输出每个参数$1 $2 $3...... 我有一个循环变量i $i 取到这时的i为1&#xff0c;我想使用这个1再去调用$1,也是就是打印出第一个参数 就是$($i)的意思来取到第几个参数&#xff0c;当然$($i)是不好用的…

(转)页游安全攻与防,SWF加密和隐藏密匙

原文链接&#xff1a;http://netsecurity.51cto.com/art/201211/364775.htm 页游&#xff0c;最最核心的就是客户端&#xff08;swf&#xff09;与服务端的游戏通信了。游戏通信产生的封包&#xff0c;内容是否可识别&#xff0c;可篡改&#xff0c;可重放&#xff0c;处理逻辑…