当前位置: 首页 > news >正文

蓝桥杯算法日记|贪心、双指针

3412 545 2928 2128

贪心学习总结:

1、一般经常用到sort(a,a+n);【a[n]】排序,可以给整数排,也可以给字符串按照字典序排序

2、每次选最优

 双指针

有序数组、字符串、二分查找、数字之和、反转字符串、回文数、颠倒二进制

对撞指针

一个是最左边,另一个是最右边,条件l<=r

回文#include <bits/stdc++.h>
using namespace std;
int main()
{// 请在此输入您的代码string s;cin>>s;int n=s.size();int l=0,r=n-1;while(l<=r){if(s[l]!=s[r]){cout<<"N"<<'\n';exit(0);}l++;r--;}cout<<"Y"<<'\n';return 0;
}

快慢指针

同一侧开始遍历序列,且一动的步长一个快一个慢【l,r】,两指针一不同的速度、不同策略移动,直到快指针移动到数组尾端、或者两指针相交,或者其他条件为止。

快指针移动策略,慢指针移动策略

for(慢指针移动策略){

while(快指针移动策略)

if{题目条件}结果;

其他补充;

}

#include <bits/stdc++.h>
using namespace std;
int main()
//{
//  // 请在此输入您的代码
//  int n,s;cin>>n>>s;
//  int a[n];
//  for(int i=0;i<n;i++){cin>>a[i];}
//  //输出美丽区间和》s并且越短越美丽
//  //区间问题,想到了前缀和
//  int sum[n];sum[0]=a[0];
//  for(int i=1;i<n;i++){
//    sum[i]=sum[i-1]+a[i];
//  }
//  for(int i=0;i<n;i++){
//    for(int j=i+1;j<n;j++){
//      if(i=0){if(sum[j]>s){cout<<j-i-1<<'\n';exit(0);}}
//      else{if(sum[j]-sum[i]>s){cout<<j-i-1<<'\n';exit(0);}}
//    }
//  }
//  return 0;
//}
//正确率对一个 ,最短的不一定先出现 
{
//随时更新最短长度 int n,s;cin>>n>>s;int a[n];for(int i=1;i<=n;i++){cin>>a[i];}int ans=n+1;for(int i=1,j=0,sum=0;i<=n;i++){//区间变大  while(j<i||(j<n&&sum<s)){sum=sum+a[++j];cout<<sum<<" ";} if(sum>=s)ans=min(ans,j-i+1);sum=sum-a[i];cout<<sum<<'\n'; //收缩左边界,保证i+1后,sum } cout<<ans<<'\n';return 0;
} 
#include <iostream>
using namespace std;
int main()
{// 请在此输入您的代码int n,m,k;cin>>n>>m>>k;int a[n];for(int i=1;i<=n;i++){cin>>a[i];}int sum=0,res=0;for(int i=1,r=0;i<=n;i++){//不满足条件,则移动快指针while(r<i||(sum<k&&r+1<=n)){sum=sum+(a[++r]>=m);}//满足条件if(sum>=k)res=res+1+n-r;sum=sum-(a[i]>=m);}cout<<res<<'\n';
//错误代码:// for(int i=1;i<=n;i++){//   for(int j=i;j<=n;j++){//     //至少有k个数是大于等于m//     if(a[j]>=m)sum++;//     if(sum=k){res=1+n-j;break;}//   }// }// cout<<res<<'\n';return 0;
}

今日打卡:

2.10
挑选字符串

https://www.lanqiao.cn/problems/1621/learning/
美丽的区间
https://www.lanqiao.cn/problems/1372/learning/
回文判定
https://www.lanqiao.cn/problems/1371/learning/

http://www.lryc.cn/news/535198.html

相关文章:

  • ArcGIS Pro SDK (二十七)自定义许可
  • 通过客户端Chatbox或OpenwebUI访问识别不到本地ollama中的模型等问题的解决
  • 速度超越DeepSeek!Le Chat 1100tok/s闪电回答,ChatGPT 4o和DeepSeek R1被秒杀?
  • JVM速成=。=
  • Packer 手动修复安装腾讯云插件
  • 学习总结三十
  • 开发完的小程序如何分包
  • Flutter PIP 插件 ---- Android
  • 【20250211】字符串:459.重复的子字符串
  • 【DeepSeek学Cuda】矩阵转置:行读取优先还是列读取优先。
  • 如何将3DMAX中的3D文件转换为AutoCAD中的2D图形?
  • Softhsm储存安全数据性能整理
  • 【C++】——精细化哈希表架构:理论与实践的综合分析
  • 【cocos creator】拖拽排序列表
  • b站——《【强化学习】一小时完全入门》学习笔记及代码(1-3 多臂老虎机)
  • 【Mac排错】ls: command not found 终端命令失效的解决办法
  • 探秘Hugging Face与DeepSeek:AI开源世界的闪耀双子星
  • SkyWalking 10.1.0 实战:从零构建全链路监控,解锁微服务性能优化新境界
  • 本地部署DeepSeek-R1(Mac版)
  • 网易易盾接入DeepSeek,数字内容安全“智”理能力全面升级
  • apachePoi中XSSFClientAnchor图片坐标简述;填充多张图片
  • Java、Go、Rust、Node.js 的内存占比及优缺点分析
  • C++智能指针的使用
  • 计算机毕业设计——Springboot的社区维修平台旅游管理
  • MySQL ALTER 命令详解
  • 02、QLExpress从入门到放弃,相关API和文档
  • Mp4视频播放机无法播放视频-批量修改视频分辨率(帧宽、帧高)
  • deepseek大模型集成到idea
  • AI基础 -- AI学习路径图
  • 在 Visual Studio Code 与微信开发者工具中调试使用 emscripten 基于 C 生成的 WASM 代码