医院网站加快建设方案长春网站建设公司哪家好
文章目录
- 前言
- 一、最长递增区间
- 二、阿波罗的魔力宝石
- 三、投篮
- 总结
前言
今天的题太简单,甚至 “最长递增区间” 和 “投篮” 就是一个问题。实在没事干,也给做了!直接上代码算了…
提示:以下是本篇文章正文内容
一、最长递增区间
代码如下:
#include <iostream>
#include <string>
#include <sstream>
#include <vector>int solution(int n, std::vector<int>& vec){int result=1;// TODO:int count = 1;for (size_t i=0; i<vec.size(); ++i){if (vec[i+1] > vec[i]){count++;}else {result = (count > result) ? count : result;count = 1;}}return result;
}
注意点就是默认值为1。
二、阿波罗的魔力宝石
代码如下:
#include <iostream>
#include <string>
#include <sstream>
#include <vector>using namespace std;
std::vector<int> solution(int n, std::vector<int>& vec){std::vector<int> result;// TODO:for(int i=0; i<n; ++i){for (int j=0; j<n-i; ++j){if(vec[j+1] < vec[j] && j+1 < n){int tmp = vec[j];vec[j] = vec[j+1];vec[j+1] = tmp;}}}result = vec;return result;
}
很简单的冒泡排序,没加flag。
三、投篮
代码如下:
#include <iostream>
#include <string>
#include <sstream>
#include <vector>int solution(int n, std::vector<int>& vec){int result = 1;// TODO:int count = 1;for (size_t i=0; i<vec.size(); ++i){if (vec[i+1] > vec[i] && vec[i+1] <= vec[i]+3){count++;}else {result = (count > result)? count : result; count = 1;}}return result;
}
这简直和第一题一模一样!我估计条件写一样也能过。
总结
实在没什么好说的,初学者都能看明白的问题。
不过冒泡排序还是比较值得一看的,这是经典排序法,虽然效率一般,但在数据是有序分布的时候,它还是很合用的,就是说数据本身是比较有序的,仅个别几个数据是乱的时候,给算法加个是否移动数据的标记,当一个循环没有移动数据即可停止循环!值得学习。