蓝桥杯算法

1,枚举(买股票)

买卖股票的最佳时机

小算是一个"优秀又不甘平庸的韭菜",想要在股票市场上大赚一笔。这天小算又看中了一只潜力股。现在已知这只股票在n天内的价格为P0,P1,....,Pn-1,小算为了规避风险,只买了一股股票,小算在这n天内只有一次买卖机会,并且不能在买人股票当天或买入股票之前卖出股票,现在请你设计一个程序,计算出小算能获得的最大利润。

输入格式:

第1行为一个整数n,第2行为n个整数P0,P1,....,Pn-1,表示每天的股价。

输出格式:

输出一个整数,即最大利润。

数据范围:

1≤n≤10^5;

1≤pi≤10^4,i=0,1......,n-1。

样例输入:

6

5 8 1 4 6 5

样例输出:

5

代码:

cpp 复制代码
#include <bits/stdc++.h>
using namespace std;
int n, a[1000],max1=0;
int main() 
{
	cin >> n;
	for (int i = 0; i<n; i++)
	{
		cin >> a[i];
	}
	for (int i = 0; i < n; i++)
	{
		for (int j = i + 1; j < n; j++)
		{
			if ((a[j] - a[i]) > max1)
				max1 = a[j] - a[i];
		}
	}
	cout << max1 << endl;
	return 0;
}

1.2贪心:

cpp 复制代码
#include <bits/stdc++.h>
using namespace std;
int n, a[1000],max1=0,min1=1000;
int main() 
{
	cin >> n;
	for (int i = 0; i<n; i++)
	{
		cin >> a[i];
	}
	for (int i = 0; i < n; i++)
	{
		if (a[i] - min1>max1)max1 = a[i] - min1;
		if (a[i] < min1)min1 = a[i];
	}
	cout << max1 << endl;
	return 0;
}

map遍历

灌溉

cpp 复制代码
#include<bits/stdc++.h>
using namespace std;
 
const int N=150;
int a[N][N];
int b[N][N];
int m,n,x;
int c;
int main(){
cin>>n>>m;
cin>>x;
while(x--)
{
int x,y;
cin>>x>>y;
a[x][y]=1;
}
cin>>c;
while(c--){
for(int i=1;i<=n;i++)
{
	for(int j=1;j<=m;j++)
	{
		if(a[i][j]==1)
		{
      
			b[i][max(1,j-1)]=b[i][min(m,j+1)]=b[max(1,i-1)][j]=b[min(n,i+1)][j]=1;
		}
	}
}
for(int i=1;i<=n;i++)
{
	for(int j=1;j<=m;j++)
	{
    if(b[i][j]==1)
a[i][j]=b[i][j];
  }
}
}
int ans=0;
for(int i=1;i<=n;i++)
{
	for(int j=1;j<=m;j++)
	{
		if(a[i][j]==1)ans++;
	}
}
cout<<ans<<'\n';
  return 0;
}

模拟:扫雷:

cpp 复制代码
#include<bits/stdc++.h>
using namespace std;
 
const int N=150;
int mp[N][N];
int ans[N][N];
 
int main(){
    int n,m;
    cin >>n>>m;
    for(int i=1;i<=n;i++){
        for(int j=1;j<=m;j++){
            cin>>mp[i][j];
        }
    }
    for(int i=1;i<=n;i++){
    	for(int j=1;j<=m;j++){
    		if(mp[i][j]==1){
    			ans[i][j]=9;
    			continue;
			}
			//扫描九宫格 计算方格周围的地雷的数量
			for(int x=max(1,i-1);x<=min(n,i+1);x++){
				for(int y=max(1,j-1);y<=min(m,j+1);y++){
					if(mp[x][y]){
						ans[i][j]++;
					}
				}
			}
		}
	}
	for(int i=1;i<=n;i++){
        for(int j=1;j<=m;j++){
            cout<<ans[i][j]<<" ";
        }
        cout<<endl; 
    }
    return 0;
}

前缀和

cpp 复制代码
#include<bits/stdc++.h>
using namespace std;

using ll = long long;
const ll N = 100001;
int a[N], prefix[N];
int main()
{
	ll n;
	cin >> n;
	for (int i = 1; i <= n; i++)
	{
		cin >> a[i];
	}
	for (int i = 1; i <= n; i++)//前缀和
	{
		prefix[i] = prefix[i - 1] + a[i];
	}
	ll q; cin >> q;
	while (q--)//查询
	{
		ll b, c; cin >> b >> c;
		cout << prefix[c] - prefix[b - 1] << '\n';
	}
	return 0;
}
相关推荐
Raink老师13 小时前
【AI面试临阵磨枪-79】实时数据 RAG:订单、商家、物流、天气、动态库存
人工智能·面试·职场和发展
Cosolar13 小时前
Chroma向量库面试学习指南
数据库·人工智能·面试·职场和发展·数据库架构
kkeeper~14 小时前
0基础C语言积跬步之数据在内存中的存储
c语言·数据结构·算法
wabs66616 小时前
关于贪心算法的一些自我总结【力扣45.跳跃游戏II】【灵感来源:代码随想录】
算法·贪心算法·复盘
2401_8769641316 小时前
【湖北专升本】2026湖北专升本真题PDF+备考资料汇总
数据结构·人工智能·经验分享·深度学习·算法·计算机视觉
嗝o゚16 小时前
CANN GE 算子融合——融合算法与调度策略
算法·昇腾·cann·ge
小江的记录本17 小时前
【JVM虚拟机】垃圾回收GC:垃圾回收算法:标记-清除、标记-复制、标记-整理、分代收集(附《思维导图》+《面试高频考点清单》)
java·jvm·后端·python·算法·安全·面试
Ulyanov18 小时前
用声明式语法重新定义Python桌面UI:QML+PySide6现代开发入门(一)
开发语言·python·算法·ui·系统仿真·雷达电子对抗仿真
数据科学小丫18 小时前
特征工程处理
人工智能·算法·机器学习
秦明月1318 小时前
电芯装配测试线安全回路设计实战
经验分享·其他·职场和发展·创业创新·学习方法