1244:和为给定数
时间:2020-05-25
本文章向大家介绍1244:和为给定数,主要包括1244:和为给定数使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
题目还是比较好理解的,就是从输入的数据里面找两个值,使得这两个数的和为给定的数M,
举例来说,就是
4//输入四个数 2 5 1 4 6//最终给定的和
如果没有解 就输出No!;
那来看看代码
#include<iostream> #include<cstdio> #include<algorithm> #include<cmath> #include<cstring> #define itn int using namespace std; int a[100000];//定义一个一维数组 int main() { int n,m,l,r,mid;//l左指针 r右指针 mid中间数 cin>>n; for(int i=0;i<n;i++) cin>>a[i];//输入数据 cin>>m;//和 sort(a,a+n);//按从小到大排序 for(int i=0;i<n;i++) { l=i;//左 r=n;//右 while(l<=r) { mid = (l+r)/2; if(a[i]+a[mid]==m) { cout<<a[i]<<" "<<a[mid];//中间取 二分 return 0; } else if(a[mid]+a[i]>m) r=mid-1;//大于就向左取 else l=mid+1;//小于就向右取 } } cout<<"No";//没有结果输出No return 0; }
先把这些数字从大到小排列,方便我们的二分,把中间项定义为mid(最左加最右/2)
然后拿最左与mid来相加与m比较 若是大了就mid向左指一个,反之向右指一个。
其中有一个代码,我一开始写的时候没有加上
l=i;//左 r=n;//右
没有明白为什么要这么做
于是第一次交的时候就GG了
后来加上了就AC了。
所以二分一定要记得定义指针啊(这不是指针,但是作用差不多,别杠),不要忘记!!!
原文地址:https://www.cnblogs.com/--840-114/p/12957514.html
- Silverlight与WPF中BeginInvoke的差异
- Linux下部署SSH登录时的二次身份验证环境记录(利用Google Authenticator)
- Linux下DNS简单部署(主从域名服务器)
- 本地yum源部署记录
- silverlight4:摄像头占用状态检测以及二种截屏方法
- Flash/Flex学习笔记(16):如何做自定义Loading加载其它swf
- 台胞也能发红包喽!小编手把手教你搞定微信支付!
- 获取可视区域高度赋值给div(解决document.body.clientHeight的返回值为0的问题)
- Docker管理工具-Swarm部署记录
- 聊一聊大数据的问题和缺陷
- Flash/Flex学习笔记(13):对象拖动(startDrag/stopDrag)
- 原来Silverlight 4中是可以玩UDP的!
- Flash/Flex学习笔记(12):FMS 3.5之如何做视频实时直播
- Flash/Flex学习笔记(11):如何检测摄像头是否被占用
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 大型项目技术栈第九讲 kaptcha的使用
- 大型项目技术栈第十讲 日志与性能监控
- Mybatis系列第三讲 Mybatis使用详解(1)
- Maven系列第二讲 安装、配置、mvn运行过程详解
- Maven第六讲 生命周期详解 高手必备!
- 鸿蒙 Ability 讲解(页面生命周期、后台服务、数据访问)
- Maven 项目第七讲 Maven插件
- weblogic Schema validation schemaValidationEnabled=false 启动报错解决
- redis 反序列化deserialize异常问题解决
- redis 入门(二)——maven4.0 + Jedis2.9.0 + redis3.2.6 实战
- spring boot 启动报错Log4j2 could not find a logging implementation 解决
- spring boot 启动 NoClassDefFoundError: org/springframework/core/ErrorCoded 报错
- java.lang.NoSuchMethodError: org.springframework.core.ResolvableType.forInstance 错误解决
- spring boot启动 no method 'getPersistenceUtil'报错解决
- spring redis java.lang.IllegalStateException: Cannot load configuration class: redis.RedisTemplet报错