首页 > 其他分享 >每日打卡-18

每日打卡-18

时间:2023-05-08 19:24:35浏览次数:46  
标签:遍历 int 18 每日 数组 打卡 指针

一.问题描述

给定两个升序排序的有序数组 A 和 B,以及一个目标值 x。

数组下标从 0 开始。

请你求出满足 A[i]+B[j]=x 的数对 (i,j)。

二.设计思路

  1. i 指针从 a数组 从前往后 开始遍历
  2. j 指针从 b数组 从后往前 开始遍历
  3. 若 a[i]+b[j]>k 说明要缩小区间使和变小 即 j–,反之i++

三.流程图

四.伪代码 

1

五.代码实现 

#include<iostream>
using namespace std;
const int N=1e5+10;
int a[N],b[N];
int main(){
    int n,m,k;
    cin>>n>>m>>k;
    for(int i=0;i<n;i++)cin>>a[i];
    for(int i=0;i<m;i++)cin>>b[i];
    for(int i=0,j=m-1;i<n;i++){
        while(a[i]+b[j]>k)j--;
        if(a[i]+b[j]==k){
            cout<<i<<" "<<j;
            break;
        }
    }
    return 0;
}

 

标签:遍历,int,18,每日,数组,打卡,指针
From: https://www.cnblogs.com/leapssisbird/p/17382865.html

相关文章

  • 打卡第十七天
    内联函数求圆的面积一、1.定义一个函数作为求圆面积的内联函数二、三、#include<iostream>usingnamespacestd;constdoublepai=3.1415926;inlinedoublemianji(doubler){ returnpai*r*r;}intmain(){ intR; cin>>R; doublearea=mianji(R); cout<<""<<area&......
  • c++打卡练习(22)
    判断一个数是不是完数流程图:伪代码:源代码:#include<iostream>usingnamespacestd;intmain(){ intN,i,j,S; cin>>N; for(i=2;i<=N;i++){ S=0; for(j=1;j<=(i/2);j++){ if(i%j==0){ S+=j; } if(S==i){ cout<<S<<""<<"is......
  • 打卡12
    求车速#include<stdio.h>intmain(){ inta[5],i; longintb,c; for(b=95860;;b++){ for(i=0,c=100000;c>=10;i++){ a[i]=(b%c)/(c/10); c/=10; } if((a[0]==a[4])&&(a[1]==a[3])){ printf("里程表上出现的新的对称数......
  • 每日一题-数码
    数码首先显然转化成[1,l-1]和[1,r]分别算对于一个数假设最高位为d那么可以写成\(d\times{10}^k+x,x<{10}^k\)设t满足\(t(d\times{10}^k+x)<=R\)那么这个数的贡献就是\(\frac{R}{d\times{10}^k+x}\)下取整,那么每次固定k,d,分块算即可。#include<cstdio>#include<algori......
  • 5.8打卡
    #include<bits/stdc++.h>usingnamespacestd;voidswap(int&a,int&b){intt=a;a=b;b=t;}intmain(){intx=5,y=10;cout<<"x="<<x<<"y="<<y<<endl......
  • Linux基础18 磁盘介绍, 结构, 磁盘分区Fdisk
    磁盘的基本概念 1.什么是磁盘?磁盘就像是森林,是所有硬式存储的统称,如最早出现的软盘,现在的硬盘,都是磁盘中的一部分。2.什么是软盘?磁盘开始指的是1.44MB的3.5英寸磁盘,这是很早时候的电脑储存盘,也叫软盘。软盘在如今已经很少被使用了,使用软盘需要安装软盘驱动。软盘容量小,容易损坏......
  • P1819 公共子序列 | P3856 [TJOI2008]公共子串
    简要题意给出三个由小写英文字母组成的字符串\(A,B,C\)。求这三个字符串的本质不同公共子序列个数。P1819:\(n=|A|=|B|=|C|,1\leqn\leq150\),答案对\(10^8\)取模。P3856:\(1\leq|A|,|B|,|C|\leq100\)。思路对于子序列问题,我们先建出子序列自动机。这里简单介绍一下......
  • 打卡19
    3.7高次方的尾数 根据乘法的规律可以看出来:乘积的后三位仅仅和乘数和被乘数的后三位有关;所以只看最后三位即可; #include<bits/stdc++.h>usingnamespacestd;intmain(){ intans=1; intx,y;cin>>x>>y; for(inti=0;i<x;i++) { ans=(ans*y)%1000; } cout<<ans<<end......
  • 打卡9.(偏移量)
    #图解#代码##java代码实现importjava.util.Scanner;publicclassMain{publicstaticvoidmain(String[]args){Scannersc=newScanner(System.in);intn=sc.nextInt(),m=sc.nextInt();int[][]q=newint[n][m];//偏移量......
  • 5月7日打卡
    题目描述:微博上有个自称“大笨钟V”的家伙,每天敲钟催促码农们爱惜身体早点睡觉。不过由于笨钟自己作息也不是很规律,所以敲钟并不定时。一般敲钟的点数是根据敲钟时间而定的,如果正好在某个整点敲,那么“当”数就等于那个整点数;如果过了整点,就敲下一个整点数。另外,虽然一天有24小时,......