数据结构_find_lucky_number(寻找幸运值)
数据结构_find_lucky_number(寻找幸运值)
问题描述
给出两个已按升序排列的数组 a[1..n],b[1..m],如果存在 i,j,使得
a[i]+b[j]==k,我们便说已找到幸运值。请你判断能不能找到幸运值。
★数据输入
输入第一行为正整数 n, m, k。 (1<=k<=10^9)
第二行为 n 个正整数 a[1..n]。 (1<=ai<=10^9)
第三行为 m 个正整数 b[1..m]。 (1<=bi<=10^9)
80%的数据 1<=n,m<=1000.
100%的数据 1<=n,m<=100000.
★数据输出
如果能找到幸运值,输出 yes。否则输出 no。
| 输入示例 | 输出示例 |
| 3 3 8 1 2 3 4 6 7 |
yes |
| 输入示例 | 输出示例 |
| 3 3 4 1 2 3 4 6 7 |
no |
解题思路
二分查找 找指定值
code
#include <stdio.h>
#include <stdlib.h> int pm[]={};
int pn[]={}; bool BinarySearch(int *p, int l, int r, int num)
{
bool flag = false;
while(l<=r)
{
int m = (l+r)/;
if(p[m]==num)
{
flag = true;
break;
}
else if(p[m]<num)
l = m+;
else
r = m-;
}
return flag;
} int main()
{
int n,m,k,i;
scanf("%d %d %d",&n,&m,&k);
// int *pn = (int *)malloc(sizeof(int)*n);
// int *pm = (int *)malloc(sizeof(int)*m);
for(i=;i<n;i++)
scanf("%d",pn+i);
for(i=;i<m;i++)
scanf("%d",pm+i); bool flag = false;
for(i=;i<n;i++)
{
if(BinarySearch(pm,,m-,k-pn[i]))
{
flag = true;
break;
}
} if(flag)
printf("yes\n");
else
printf("no\n"); // free(pn);
// free(pm);
return ;
}
数据结构_find_lucky_number(寻找幸运值)的更多相关文章
- 数据结构_相似三角形优雅值_sjx
问题描述 给你 n 个三角形,每个三角形有一个优雅值,然后给出一个询问,每次询问一个三角形,求与询问的三角形,相似的三角形中的优雅值最大是多少. ★数据输入第一行输入包括 n 一个数字,接下来 n 行 ...
- 数据结构HUFFman求权值
#include <bits/stdc++.h>using namespace std;priority_queue< int, vector <int>, greate ...
- 寻找hash值——把int array看成是一个整数
QUESTION: Write a class DominoChecker that has a method called addBox(int[]) that takes a box of fiv ...
- JavaScript数据结构——集合、字典和散列表
集合.字典和散列表都可以存储不重复的值. 在集合中,我们感兴趣的是每个值本身,并把它当作主要元素.在字典和散列表中,我们用 [键,值] 的形式来存储数据. 集合(Set 类):[值,值]对,是一组由无 ...
- python3数据结构与算法
python内置的数据结构包括:列表(list).集合(set).字典(dictionary),一般情况下我们可以直接使用这些数据结构,但通常我们还需要考虑比如搜索.排序.排列以及赛选等一些常见的问题 ...
- 为什么我要放弃javaScript数据结构与算法(第七章)—— 字典和散列表
本章学习使用字典和散列表来存储唯一值(不重复的值)的数据结构. 集合.字典和散列表可以存储不重复的值.在集合中,我们感兴趣的是每个值本身,并把它作为主要元素.而字典和散列表中都是用 [键,值]的形式来 ...
- 【bzoj4568】【Scoi2016】幸运数字 (线性基+树上倍增)
Description A 国共有 n 座城市,这些城市由 n-1 条道路相连,使得任意两座城市可以互达,且路径唯一.每座城市都有一个幸运数字,以纪念碑的形式矗立在这座城市的正中心,作为城市的象征.一 ...
- [从今天开始修炼数据结构]图的最小生成树 —— 最清楚易懂的Prim算法和kruskal算法讲解和实现
接上文,研究了一下算法之后,发现大话数据结构的代码风格更适合与前文中邻接矩阵的定义相关联,所以硬着头皮把大话中的最小生成树用自己的话整理了一下,希望大家能够看懂. 一.最小生成树 1,问题 最小生成树 ...
- Java中的数据结构-HashMap
Java数据结构-HashMap 目录 Java数据结构-HashMap 1. HashMap 1.1 HashMap介绍 1.1.1 HashMap介绍 1.1.2 HashMap继承图 1.2 H ...
随机推荐
- 3.16 draw 3.17 更新函数
3.16 draw virtual void draw(); void HelloWorld::draw() { CCSize size = CCDirector::sharedDirector()- ...
- POJ - 1324 Holedox Moving (状态压缩+BFS/A*)
题目链接 有一个n*m(1<=n,m<=20)的网格图,图中有k堵墙和有一条长度为L(L<=8)的蛇,蛇在移动的过程中不能碰到自己的身体.求蛇移动到点(1,1)所需的最小步数. 显然 ...
- getParameter() getInputStream()和getReader() 区别
我们经常用servlet和jsp, 经常用request.getParameter() 来得到数据. request.getParameter() request.getInputStream() r ...
- 最长递增子序列 LIS 时间复杂度O(nlogn)的Java实现
关于最长递增子序列时间复杂度O(n^2)的实现方法在博客http://blog.csdn.net/iniegang/article/details/47379873(最长递增子序列 Java实现)中已 ...
- Oracle 闪回归档(Flashback Database)
cmd --管理员身份打开 sqlplus / as sysdba --管理数据库 shu immediate; --独占方式开始 startup mount --修改日期模式 alter datab ...
- Unix文件指令-Mac终端命令应用
pwd:查看当前文件夹 cd: 打开文件夹 ls:列出当前路径下所有文件 ls -l :列出当前路径下的所有文件详细信息. mkdir: 新建文件夹 touch: 创建文件 eg: touch t ...
- Java基础--对象克隆
对象拷贝用于在内存中复制对象,无需构造器便可创建对象. 需要注意的是 1.clone方法提供的只是简单的值拷贝和地址拷贝,若类中包含HashMap等类型时,需要手工编写拷贝过程 2.如果父类没有提供正 ...
- tree指令
tree 中文解释:tree功能说明:以树状图列出目录的内容.语 法:tree [-aACdDfFgilnNpqstux][-I <范本样式>][-P <范本样式>][目录.. ...
- Redis事务和watch
redis的事务 严格意义来讲,redis的事务和我们理解的传统数据库(如mysql)的事务是不一样的. redis中的事务定义 Redis中的事务(transaction)是一组命令的集合. 事务同 ...
- 修改rbd指定位置的数据
标签(空格分隔): ceph,ceph实验 --- 我们通过查看index为0x01的小4M文件,得知了file2.txt这个文件内容在这个4M内保存的位置为0x9000,因为0x01前面还有一个4M ...