数组中是否有两个数的和为10 一道小题做四方

本文介绍了三种高效算法来解决数组中是否存在两个数之和等于10的问题:暴力枚举、排序加二分查找、哈希表查找。详细解释了每种方法的时间复杂度和实现细节,旨在帮助读者理解和选择最适合场景的解决方案。

数组中是否有两个数的和为10
1.
比较任意两个数的和是否为10。如
for (int i = 0; i < n; ++i) { for (int j = i+1; j < n; ++j) { .... }}
复杂度为O(n*n)。
 
2.
将数组排序后,对每个数m,使用二分查找在数组中寻找10-m。
复杂度为O(nlogn)。
 
3.
将数组存储到hash_set中去,对每个数m,在hash_set中寻找10-m。
复杂度为O(n)。
 
4.
如果数组很大,超过内存的容量,可以按照hash(max(m, 10-m))%g,将数据分到g个小的group中。然后对每个小的group进行单独处理。
复杂度为O(n)。



7-6 吉老师的回归分数 15 全屏浏览 切换布局 作者 DAI, Longao 单位 杭州百腾教育科技有限公司 曾经在天梯赛大杀四方的吉老师决定回归天梯赛赛场啦! 为了简化题目,我们不妨假设天梯赛的每道题目可以用一个不超过 500 的、只包括可打印符号的字符串描述出来,如:Problem A: Print "Hello world!"。 众所周知,吉老师的竞赛水平非常高超,你可以认为他每道题目都会(事实上也是……)。因此,吉老师会按照顺序看题并题。但吉老师水平太高了,所以签到题他就懒得了(浪费时间),具体来说,假如题目的字符串里有 qiandao 或者 easy(区分大小写)的话,吉老师看完题目就会跳过这道题目不。 现在给定这次天梯赛总共有几道题目以及吉老师已经完了几道题目,请你告诉大家吉老师现在正在哪个题,或者吉老师已经把所有他打算的题目完了。 提醒:天梯赛有分数升级的规则,如果不签到题可能导致团队总分不足以升级,一般的选手请千万不要学习吉老师的酷炫行为! 输入格式: 输入第一行是个正整数 N,M (1≤M≤N≤30),表示本次天梯赛有 N 道题目,吉老师现在完了 M 道。 接下来 N 行,每行是一个符合题目描述的字符串,表示天梯赛的题目内容。吉老师会按照给出的顺序看题——第一行就是吉老师看的第一道题,第二行就是第二道,以此类推。 输出格式: 在一行中输出吉老师当前正在的题目对应的题面(即完了 M 道题目后,吉老师正在哪个题)。如果吉老师已经把所有他打算的题目完了,输出一行 Wo AK le。 输入样例 1: 5 1 L1-1 is a qiandao problem. L1-2 is so...easy. L1-3 is Easy. L1-4 is qianDao. Wow, such L1-5, so easy. 输出样例 1: L1-4 is qianDao. 输入样例 2: 5 4 L1-1 is a-qiandao problem. L1-2 is so easy. L1-3 is Easy. L1-4 is qianDao. Wow, such L1-5, so!!easy. 输出样例 2: Wo AK le #include<bits/stdc++.h> using namespace std; int main() {int n,m;string a="qiandao";string b="easy";string k=" "; cin>>n>>m;//n道题完m道 while(n--) { string s; cin>>s; for(int i=0;i<s.length();i+=a.length()) if(s.substr(i,a.length())==a) continue; for(int i=0;i<s.length();i+=b.length()) if(s.substr(i,b.length())==b) continue; m--; k=gets(s);if(m==0)break; } if(m==0) cout<<puts(k)<<endl; else cout<<"Wo AK le"<<endl; return 0;}修改代码
03-30
请用python代码解答第二题: 某度假村的私汤别院中有一个立方体的私汤池,长度约2米,宽度约1.5米。为了防止水溢出,在汤池的宽边一侧,有一道溢水口。该溢水口距汤池底部约0.5米。汤池的入水口在溢水口的对侧池壁上。入水口所在池壁上距池底0.5米高范围内均匀分布有多个入水口,当客人打开注水阀门后,这些入水口会同时向水池中注水。为了美观,该私汤池是架高(除个别支架外)悬空放置的。四方池壁材料统一,池底了增厚与加固,材料信息见附录。 某个冬日,气温 10℃,别院客服人员按客户要求时间放满池水,然后关闭注水口。客人在使用时发现水温仅有30℃,于是自行打开注水口增加热水。为了保证用户体验,一般会控制入水口热水注入的流速恒定,并且尽量不引起汤池中水流的距离相对运动。由于注入热水来自山中地热温泉,水温恒定为50℃. 1.请从宏观的角度建立汤池中水温最终能达到的温度与热水注入速率的关系,并估计当热水注入速率为0.5kg/s时,汤池水最终能达到的温度. 2.请从微观的角度建立汤池中水温随空间时间变化的模型,并估计当热水注入速率为0.5kg/s时,汤池中水的温度分布。 3.如果客户希望在30分钟内将在汤池中各处水温都提升到45℃即可,那么应该如何选择热水注入速率才能最节约用水,热水注入的最大流速为3kg/s. 4.如果为了提升加热速度,可开启池底加热功能。池底可以均匀的提供加热,加热功率为每平方米10kw.当前电费为0.8元/度,热水费用为5元/吨。本着节约能源目的,在开启加热功能的情况下,按问题3中要求,应如何选择热水注入速率。 附录:参考材料信息 水的比热 4718 J/(kg*K) 水的密度 1000 Kg/m3 水的热导率 0.615 W/(m*K) 水空气的直接热交换系数 4.692 W/(m2*K) 水通过浴缸底部与空气的热交换系数 1.934 W/(m2*K) 水通过浴缸侧壁与空气的热交换系数 3.804 W/(m2*K)
最新发布
05-04
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值