![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
ACM基础算法
肝肠寸段
哈哈哈哈哈哈哈哈嗝~
展开
-
平方十位数
由0~9这10个数字不重复、不遗漏,可以组成很多10位数字。这其中也有很多恰好是平方数(是某个数的平方)。比如:1026753849,就是其中最小的一个平方数。请你找出其中最大的一个平方数是多少?#include<iostream>#include<set>using namespace std;//判断这十位数是不是各位不一致 bool contain_9(long long x){ if(x==0) return 0; set<int> s;原创 2020-07-10 17:02:12 · 393 阅读 · 0 评论 -
lower_bound和upper_bound的用法
二分查找算法可以解决最简单的二分查找问题:a数组单调递增,并且其中没有重复的数值。我们遇到的实际问题可能就没有这么简单,可能会有重复的数值。比如a数组里有3个5。这时我们查找5就有一个问题:到底返回哪一个5的下标?为了解决这些问题,C++ STL提供了两个特别好用的函数:lower_bound()和uppper_bound()。假设a是一个数组,n是数组长度,lower_bound(a, a+n...原创 2020-02-02 15:00:01 · 10672 阅读 · 2 评论 -
二分查找算法
我们在写程序的时候,经常会遇到这样一类问题:在一个数组中查找一个数是不是存在。比如在下图的数组中,查找8是不是存在:如果不要求效率,我们最一般的查找方法就是顺序查找,依次查看a[0], a[1], …, a[n-1],检查是不是等于8。这样对于长度为n的数组,平均查找长度是n/2。如果数组是有序的,比如是递增的,就像上图[1, 2, 3, 4, 5, 7, 8, 10, 11, 13]一样的...原创 2020-02-02 14:18:45 · 272 阅读 · 0 评论