寻找A和B的中间位置

寻找子串位置 寻找子串位置   题目描述 Description 给出字符串a和字符串b,保证b是a的一个子串,请你输出b在a中第一次出现的位置。 输入描述 Input Description 仅一行包含两个字符串a和b 输出描述 Output Description 仅一行一个整数 阅读详情
#include<iostream>
#include<stdio.h>
using namespace std;
#define C 50
#define D 50
int M_search(int A[], int B[], int n){
    int s1=0, d1=n-1, m1;
    int s2=0, d2=n-1, m2;
    while(s1 != d1 || s2 != d2){
        m1 = (s1+d1)/2;
        m2 = (s2+d2)/2;
        if(A[m1] == B[m2])
            return A[m1];
        if(A[m1] < B[m2]){
            if((s1+d1)%2 == 0){ //元素个数为奇数
                s1 = m1;        //舍弃A中间点以前的部分且保留中间点
                d2 = m2;        //舍弃B中间点以后的部分且保留中间点
            }
            else{               //元素个数为偶数
                s1 = m1+1;      //舍弃A中间点以及中间点以前的部分
                d2 = m2;        //舍弃B中间点以后的部分且保留中间点
            }
        }
        else{
            if((s2+d2)%2 == 0){
                s2=m2;
                d1=m1;
            }
            else{
                s2=m2+1;
                d1=m1;
            }
        }
    }
    return A[s1] < B[s2] ? A[s1]:B[s2];
}

void input(int A[],int B[],int i,int n){
	printf("输入数组A的数据");
	for(i = 0;i < n;i++){
		scanf("%d",&A[i]);
	}
	
	printf("输入数组B的数据");
	for(i = 0;i < n;i++){
		scanf("%d",&B[i]);
	}
	
}
int main(){
	int i = 0;
	int n;
	printf("数组中一共有n个数,n=");
	scanf("%d",&n);
	int A[n];
	int B[n];
	//void input(int A[],int B[],int i,int n);
	input(A,B,i,n);
	for(i = 0;i < n;i++){
		printf("A的数据为%d\n",A[i]);
	}
	for(i = 0;i < n;i++){
		printf("B的数据为%d\n",B[i]);
	}
		
   //int A[5] = {11, 13, 15, 17, 19};
   //int B[5] = {2, 4, 6, 8, 20};
	printf("%d\n", M_search(A, B, n));
}


在这里插入图片描述

【codevs】1204 寻找子串位置(KMP模板,比模板还模板) 1204 寻找子串位置 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 青铜 Bronze 链接:点这里 题解 题目描述 Description 给出字符串a和字符串b,保证b是a的一个子串,请你输出b在a中第一次出现的位置。输入描述 Input Description 仅一行包含两个字符串a和b输出描述 Output Description 仅一行一个 阅读详情

相关推荐

驱动器寻找起始位置

通过合理配置限位开关、零点开关和编码器Z相,可实现高效高精度的回零操作,为运动控制系统建立可靠的绝对坐标基准。驱动器寻找起始位置(回零/寻参)的过程是通过。

qq_36314279的博客 1382

【CCF】——中间数(详细分析)

问题描述   在一个整数序列a1, a2, …, an中,如果存在某个数,大于它的整数数量等于小于它的整数数量,则称其为中间数。在一个序列中,可能存在多个下标不相同的中间数,这些中间数的值是相同的。   给定一个整数序列,请找出这个整数序列的中间数的值。 输入格式   输入的第一行包含了一个整数n,表示整数序列中数的个数。   第二行包含n个正整数,依次表示a1, a2, …, an。 输出格式   如果约定序列的中间数存在,则输出中间数的值,否则输出-1表示不存在中间数。 样例输入 6 2 6 5 6

xxxibgdrgn博客 2118

LTE信令流程——切换

LTE信令流程 切换 切换是由基站发起的,不同于小区重选,小区重选是由UE发起的。 基站利用移动性管理算法给UE下发测量任务,在RRC重配置消息中携带MeasConfig信元给UE下发测量配置 切换有三种场景: 同一基站内不同小区的切换 不同基站间基于X2的切换(MME不变) 不同基站间基于S1的切换(MME/SGW可能改变) 1. 同一基站内不同小区的切换 连接态的UE在一个基站的不同小区之间移动 UE上报合适的测量报告(Measure Reports),触发基站切换 基站下发切换命令给UE,

Hxx的博客 1万+

二叉树(输出a-b中间节点数)

题目描述 如上所示,由正整数1,2,3……组成了一颗特殊二叉树。我们已知这个二叉树的最后一个结点是n。现在的问题是,结点m所在的子树中一共包括多少个结点。 比如,n = 12,m = 3那么上图中的结点13,14,15以及后面的结点都是不存在的,结点m所在子树中包括的结点有3,6,7,12,因此结点m的所在子树中共有4个结点。 输入描述: 输入数据包括多行,每行给出一组测试数据,包括两个整数m,n (1 <= m <= n <= 1000000000)。 输出描述: 对于每一组测

Gedulding的博客 589

【Spring源码三千问】哪些循环依赖问题Spring解决不了?

哪些循环依赖问题Spring解决不了?前言版本约定正文场景一: prototype 类型的循环依赖场景二: constructor 注入的循环依赖场景三:Proxy 类型的 Bean 的循环依赖小结 系列博文: 【老王读Spring IoC-0】Spring IoC 引入 【老王读Spring IoC-1】IoC 之控制反转引入 【老王读Spring IoC-2】IoC 之 BeanDefinition 扫描注册 【老王读Spring IoC-3】Spring bean 的创建过程 【老王读Spring I

老王的专栏 7319

人工智能,不止于模型:四步实现完整工作流

工程师越来越多地致力于将人工智能 (AI) 集成到自己的项目和应用中,同时不断着力提升自己的 AI 技能。面对 AI 问题,工程师首先要了解什么是 AI,以及如何将它纳入当前工作流,这看似简单,实则未必容易。在 Google 中搜索“什么是 AI?”会得到数百万条结果,包括不同程度的技术和相关信息。那么,对工程师而言,AI 意味着什么?人们对 AI 的关注主要集中在 AI 模型上,受此影响,工程师会迅速投入 AI 建模的研究。

r1832644594的博客 2821

【数据结构】查找算法

有序表的折半查找 /有序表的折半查找/ 输入:第一行包括两个数,查找范围的大小n,以及要查找元素的个数m 第二行是n个元素,表示查找范围内的元素 第三行是m个元素,表示要查找的元素 输出:能找到则输出位置,不能找到则输出-1 #include<stdio.h> #include<malloc.h> int zheban(int a[],int n,int m) { int low=0; int high=n-1; int mid; while(low<=high) {

jxyyyy的博客 672

IEEE802.11bf: WLAN Sensing Standard

下表为IEEE802.11bf 定义的使用情境 (Use Cases)

qinsd19的博客 1061

关于int(M)后面参数的一点research

又遇到int后面参数这个问题,整理下。 mysql中,int存储需要占用4个字节,无论存的是324123,还是1,与存储数字大小无关。 有符号时,最小值为-2147483648(注意这里是11位显示宽度),最大值为2147483648(此处为10位显示宽度) 无符号时(unsigned),最小值为0,最大值为4294967295(注意这里是10位显示宽度)。 在mysql创建表中,大家可以

god_for的专栏 814

深入Luckfox Pico的Web界面:从Angular前端到CGI后端的RV1106 IPCWeb全栈解析

本文深入解析了基于瑞芯微RV1106芯片的Luckfox Pico设备上,IPCWeb全栈解决方案的架构与部署。详细介绍了如何通过SDK编译配置,将现代Angular前端框架与高效的C++ CGI后端结合,并利用nginx和FastCGI在嵌入式环境中构建稳定、高性能的Web管理界面,为物联网设备开发提供了完整的实战参考。

3a9bq4r8t2y的博客 277

Unity插件NodeCanvas之行为树的详细教程

NodeCanvas 是一个用于 Unity 的可视化脚本工具,主要用于游戏开发中的行为树、状态机和流程图的设计。它通过节点编辑器的方式,让开发者可以更直观地创建和管理游戏逻辑,减少了传统编码的复杂性。今天我们就来详细介绍一下NodeCanvas插件。

TxNet 1962

求两个整型数的中间值

文章目录已知基本方法进阶1进阶2最终版 已知 已知有两个整型变量 int a 和 int b,求这两个数的中间值,即 int c 基本方法 c = (a + b)/2; 你能想出上述操作可能会存在的问题吗? 答案是,加法过程中可能会溢出。 进阶1 因此,我们可以这么做 c = a/2 + b/2; 虽然解决了溢出的问题,但仍然还有缺点,你能想到是什么吗? 答案是,用了两次除法,运行效率会显著降低,因为除法是所有基础运算中最慢的。 进阶2 因此,我们又可以这么做 c = a + (b-a)/2; 好

silent_sunshine的博客 3621

【DaVinci Developer工具实战】03 -导入xml文件

本文档描述了 DaVinci Developer 导入数据的的具体功能 ,它适用于导入AUTOSAR SWC 模板【AUTOSAR XML 文件】 文件。

1992

CCCC天梯赛L1-094 剪切粘贴

字符串

2202_75344116的博客 403

8.9华为OD机试真题 新系统 - 灯带颜色变换 (Java/Py/C/C++/Js/Go)

8.9华为OD机试真题 新系统 - 灯带颜色变换 (Java/Py/C/C++/Js/Go)

算法大师! 672

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

Codeforces Round #579 (Div. 3) D2 Remove the Substring (hard version)

题目链接 题意: 给两个字符串 A , B ,长度 A > B,B 是 A 的子串,问最多删除多少个字符 B 依然是 A 的子串(子串定义不同,本题子串指的是例如 test 的子串有 test , tes , tet , est ,tst, te, ts ,tt ,es ,st, et, t ,e ,s ,t,即可以不连续) 思路: 首先暴力的思路肯定是有的,但是只能过D1,不适合...

correct 163

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

Codeforces D. Task On The Board (思维 / 构造) (Round #650 Div.3)

传送门 题意: 现有一个初始字符串a,可在其上删除一些字符(也可以不删)得到中间字符串t。而t含有m个字符,对应符合一个标准数组b;使得b[i]正好等于t[i]与t中其他比t[i]字典序大的字符索引j的 |i - j| 的和。先给出a字符串与b数组,需构造出中间字符串t。 思路: 因为b[i] = 0的时候表示该字符是字符串中最大的字符,不然会与更大的字符产生数值,所以我们就每次都以b[i] = 0为特殊点来处理。 首先找出足够数目的最大字符来填充所以b[i] = 0的位置,并用vis[i] = 1来标

Satur9的博客 191

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

D2. Remove the Substring

D2. Remove the Substring (hard version) The only difference between easy and hard versions is the length of the string. You are given a string s and a string t, both consisting only of lowercase Latin...

qq_36102055的博客 327

2分法。。

一 定义: 对于区间[a,b]上连续不断且f(a)·f(b)<0的函数y=f(x),通过不断地把函数f(x)的零点所在的区间一分为二,使区间的两个端点逐步逼近零点,进而得到零点近似值的方法叫二分法。 二 原理: 例如一个升序数组,如果中间数值正好等于所寻数值,则结束;如果中间数值小于所寻数值,则中间数值的左侧的所有数值都小于所寻数值,只需从右侧进行;如果中间数值大于所寻数值,则中间数值的右侧的所有数值都大于所寻数值,只需从左侧进行; 三 思路:  查...

m0_62796573的博客 156

Median of Two Sorted Arrays

There are two sorted arrays A and B of size m and n respectively. Find the median of the two sorted arrays. The overall run time complexity should be O(log (m+n)). class Solution { public:

xansus的专栏 246

寻找单链表的中间元素

寻找单链表的中间元素 单链表元素个数如果为奇数个则正常输出中间元素即可,若单链表元素个数为偶数个则将两个中间元素都输出。 代码如下: #include&lt;stdio.h&gt; #include &lt;malloc.h&gt; #include&lt;stdbool.h&gt;//C语言中要用bool类型时 需要用此文件名,若没有此文件 就无法使用bool typedef int Elem...

Change_Improve的博客 1441

2023-04-25:给定两个长度为N的数组,a[]和b[] 也就是对于每个位置i来说,有a[i]和b[i]两个属性 i a[i] b[i] j a[j] b[j] 现在想为了i,选一个最

2022-04-25:给定两个长度为N的数组,a[]和b[]也就是对于每个位置i来说,有a[i]和b[i]两个属性现在想为了i,选一个最好的j位置,搭配能得到最小的如下值:我们把这个最小的值,定义为i的最in值比如 :0位置和2位置搭配,可以得到最in值 : 1841位置和2位置搭配,可以得到最in值 : 1712位置和1位置搭配,可以得到最in值 : 1713位置和1位置搭配,可以得到最in值 : 1744位置和2位置搭配,可以得到最in值 : 219。

福大大架构师每日一题 2万+

寻找相同数对A-B多指针问题

这样ans直接加上k-j(区间长度)即可排序的时间复杂度为O(nlog2n),而尺取法的j和k随着i递增,复杂度为O(n),所以总时间复杂度为O(nlog2n);

HiL_001的博客 930

用Verilog实现寻找第一个1和最后一个1的位置

用Verilog实现寻找数据 第一个1和最后一个1的位置 寻找数据中的第一个1的位置 // find fist one module find_ones( input [7:0] x, output [2:0] y); wire [3:0] data_4; wire [1:0] data_2; assign y[2] = | x[7:4]; assign data_4= y[2] ? x[7:4] : x[3:0] ; assign y[1] = | data_4[3:2]; assign data_

wangn1633的博客 1万+

[wikioi]1204 寻找子串位置

1204 寻找子串位置  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 青铜 Bronze 题目描述 Description 给出字符串a和字符串b,保证b是a的一个子串,请你输出b在a中第一次出现的位置。 输入描述 Input Descr

保持对编程的热情! 1329

【链表】2023A-寻找链表的中间节点

给定一个单链表L,请编写程序输出L中间节点保存的数据。如果有两个中间节点,则输出第二个中间节点保存的数据。

u014339447的博客 525
上一篇: 2010年408 将一维数组R中保存的序列循环左移p个位置
下一篇: 直接插入排序将数字从小到大排序
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值