前言
今天的题太简单,甚至 “最长递增区间” 和 “投篮” 就是一个问题。实在没事干,也给做了!直接上代码算了…
提示:以下是本篇文章正文内容
一、最长递增区间
代码如下:
#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;
}
这简直和第一题一模一样!我估计条件写一样也能过。文章来源:https://www.toymoban.com/news/detail-425387.html
总结
实在没什么好说的,初学者都能看明白的问题。
不过冒泡排序还是比较值得一看的,这是经典排序法,虽然效率一般,但在数据是有序分布的时候,它还是很合用的,就是说数据本身是比较有序的,仅个别几个数据是乱的时候,给算法加个是否移动数据的标记,当一个循环没有移动数据即可停止循环!值得学习。文章来源地址https://www.toymoban.com/news/detail-425387.html
到了这里,关于C++每日一练:最长递增区间 && 阿波罗的魔力宝石 && 投篮的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!