找和为K的两个元素
总时间限制:1000ms 内存限制: 65536kB
描述
在一个长度为n(n < 1000)的整数序列中,判断是否存在某两个元素之和为k。
输入
第一行输入序列的长度n和k,用空格分开。
第二行输入序列中的n个整数,用空格分开。
输出
如果存在某两个元素的和为k,则输出yes,否则输出no。
样例输入
9 10
1 2 3 4 5 6 7 8 9
样例输出
yes
ac代码
/*
@File : find_element.cpp
@Time : 2020/03/22 14:51:43
@Contact : levarz@163.com
@Desc : 找和为K的两个元素
*/
#include <iostream>
#include <stdlib.h>
#define MAX_LEN 1010
using namespace std;
/**
* @brief 数组读入数据
*
* @param array 数组
* @param length 数组长度
*/
void read_data_for(int array[], int length);
/**
* @brief 查找valu在数组中第一个位置
*
* @param value 查找元素
* @param pos 元素value第一次出现的逻辑位置,不存在pos为-1
* @param array 数组
* @param length 数组长度
* @return true 元素存在
* @return false 元素不存在
*/
bool find_first_of(int value, int &pos, int array[], int length);
int main(int argc, char const *argv[])
{
int numbers[MAX_LEN], n, k, pos = -1;
cin >> n >> k;
read_data_for(numbers,n);
for (int i = 0; i < n; i++) {
if (find_first_of(k-numbers[i],pos,numbers,n))
{
cout << "yes" <<endl;
system("pause");
return 0;
}
}
cout << "no" <<endl;
system("pause");
return 0;
}
void read_data_for(int array[], int length)
{
for (int i = 0; i < length; i++) {
cin >> array[i];
}
}
bool find_first_of(int value, int &pos, int array[], int length)
{
for (int i = 0; i < length; i++) {
if (value == array[i]) {
pos = i + 1;
return true;
}
}
pos = -1;
return false;
}
找和为K的两个元素的更多相关文章
- OpenJudge计算概论-找和为K的两个元素
/*============================================================== 找和为K的两个元素 总时间限制: 1000ms 内存限制: 65536 ...
- Openjudge-计算概论(A)-找和为K的两个元素
描述: 在一个长度为n(n < 1000)的整数序列中,判断是否存在某两个元素之和为k. 输入第一行输入序列的长度n和k,用空格分开.第二行输入序列中的n个整数,用空格分开.输出如果存在某两个元 ...
- LINQ找出重复和不重复的元素及linq OrderBy 方法 两个字段同时排序有关问题
//重复元素:3,4,5 //不重复元素:1,8,9 , , , , , , , , , , }; //不重复元素 var unique = arr.GroupBy(i => i) .Where ...
- 《算法导论》习题2.3-7 查找集合S中是否有两个元素和为X---Java实现
代码如下: public class MergeSort { public static void sort(int [] A,int p, int r) { if(p<r) { int q = ...
- 海量数据中找出前k大数(topk问题)
海量数据中找出前k大数(topk问题) 前两天面试3面学长问我的这个问题(想说TEG的3个面试学长都是好和蔼,希望能完成最后一面,各方面原因造成我无比想去鹅场的心已经按捺不住了),这个问题还是建立最小 ...
- 求包含每个有序数组(共k个)至少一个元素的最小区间
title: 求包含每个有序数组(共k个)至少一个元素的最小区间 toc: false date: 2018-09-22 21:03:22 categories: OJ tags: 归并 给定k个有序 ...
- 【一起刷LeetCode】在未排序的数组中找到第 k 个最大的元素
题目描述 在未排序的数组中找到第 k 个最大的元素.请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素. 示例 1: 输入: [3,2,1,5,6,4] 和 k = 2 ...
- 小于K的两数之和
给你一个整数数组 A 和一个整数 K,请在该数组中找出两个元素,使它们的和小于 K但尽可能地接近 K,返回这两个元素的和. 如不存在这样的两个元素,请返回 -1. 示例1: 输入:A = [34,23 ...
- TopK问题,数组中第K大(小)个元素问题总结
问题描述: 在未排序的数组中找到第 k 个最大的元素.请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素. 面试中常考的问题之一,同时这道题由于解法众多,也是考察时间复杂 ...
随机推荐
- Guitar Pro 7教程之添加音轨讲解
Guitar Pro 7是当前的新版本,较之前版本GP5,GP6,不管在功能还是软件的界面上都是有了不一样的改变,最近听到很多朋友说,由于Guitar Pro 7界面与之前完全不一样,很多功能都不知道 ...
- QBXT 提高组储备营 2020.夏 游记
DAY 1 是第一天呐!老师好强!讲得好仔细!连我都全懂了![doge] 突然对后面几天充满了期待-- 复习内容:二分,排序,贪心,搜索(好评) 新知识:Huffman树及Huffman编码,对拍,二 ...
- Java基础教程——封装
面向对象的三大特征 封装:encapsulation 继承:inheritance 多态:polymorphism 封装 类是一个最基本的封装 封装的好处: 数据安全:保证数据安全 方便调用:提供清晰 ...
- Flash----一种VirtualActor模式的分布式有状态系统原型
首先, 这个Flash不是我们在浏览器用的Flash这种技术, 而是: 动作缓慢, 车速极快------闪电(Flash). 18年的某一个周末, 即兴用Python写了一个Virtual Actor ...
- MindSpore手写数字识别初体验,深度学习也没那么神秘嘛
摘要:想了解深度学习却又无从下手,不如从手写数字识别模型训练开始吧! 深度学习作为机器学习分支之一,应用日益广泛.语音识别.自动机器翻译.即时视觉翻译.刷脸支付.人脸考勤--不知不觉,深度学习已经渗入 ...
- LaTeX中的特殊字符
空白符号代码及注释: 显示效果: 控制符.排版符号.标志符号.引号.连字符.非英文字符和重音符号的代码及注释: 显示效果:
- 卡耐基梅隆大学(CMU)元学习和元强化学习课程 | Elements of Meta-Learning
Goals for the lecture: Introduction & overview of the key methods and developments. [Good starti ...
- 一万字详解 Redis Cluster Gossip 协议
Redis Cluster Gossip 协议 大家好,我是历小冰,今天来讲一下 Reids Cluster 的 Gossip 协议和集群操作,文章的思维导图如下所示. 集群模式和 Gossip 简介 ...
- AOV图与拓扑排序&AOE图与关键路径
AOV网:所有的工程或者某种流程可以分为若干个小的工程或阶段,这些小的工程或阶段就称为活动.若以图中的顶点来表示活动,有向边表示活动之间的优先关系,则这样活动在顶点上的有向图称为AOV网. 拓扑排序算 ...
- 手把手教你使用Rollup打包📦并发布自己的工具库🔧
DevUI是一支兼具设计视角和工程视角的团队,服务于华为云DevCloud平台和华为内部数个中后台系统,服务于设计师和前端工程师. 官方网站:devui.design Ng组件库:ng-devui(欢 ...