手机网站跳转代码,凡客诚品 正品官网,html5网站制作软件,织梦响应式网站怎么做3412 545 2928 2128 贪心学习总结#xff1a; 1、一般经常用到sort#xff08;a#xff0c;an#xff09;#xff1b;【a[n]】排序#xff0c;可以给整数排#xff0c;也可以给字符串按照字典序排序 2、每次选最优 双指针
有序数组、字符串、二分查找、数字之和、反转字… 3412 545 2928 2128 贪心学习总结 1、一般经常用到sortaan【a[n]】排序可以给整数排也可以给字符串按照字典序排序 2、每次选最优 双指针
有序数组、字符串、二分查找、数字之和、反转字符串、回文数、颠倒二进制
对撞指针
一个是最左边另一个是最右边条件lr
回文#include bits/stdc.h
using namespace std;
int main()
{// 请在此输入您的代码string s;cins;int ns.size();int l0,rn-1;while(lr){if(s[l]!s[r]){coutN\n;exit(0);}l;r--;}coutY\n;return 0;
}
快慢指针
从同一侧开始遍历序列且一动的步长一个快一个慢【l,r】,两指针一不同的速度、不同策略移动直到快指针移动到数组尾端、或者两指针相交或者其他条件为止。 快指针移动策略慢指针移动策略 for慢指针移动策略{ while快指针移动策略 if{题目条件}结果 其他补充 } #include bits/stdc.h
using namespace std;
int main()
//{
// // 请在此输入您的代码
// int n,s;cinns;
// int a[n];
// for(int i0;in;i){cina[i];}
// //输出美丽区间和》s并且越短越美丽
// //区间问题想到了前缀和
// int sum[n];sum[0]a[0];
// for(int i1;in;i){
// sum[i]sum[i-1]a[i];
// }
// for(int i0;in;i){
// for(int ji1;jn;j){
// if(i0){if(sum[j]s){coutj-i-1\n;exit(0);}}
// else{if(sum[j]-sum[i]s){coutj-i-1\n;exit(0);}}
// }
// }
// return 0;
//}
//正确率对一个 最短的不一定先出现
{
//随时更新最短长度 int n,s;cinns;int a[n];for(int i1;in;i){cina[i];}int ansn1;for(int i1,j0,sum0;in;i){//区间变大 while(ji||(jnsums)){sumsuma[j];coutsum ;} if(sums)ansmin(ans,j-i1);sumsum-a[i];coutsum\n; //收缩左边界保证i1后sum } coutans\n;return 0;
}
#include iostream
using namespace std;
int main()
{// 请在此输入您的代码int n,m,k;cinnmk;int a[n];for(int i1;in;i){cina[i];}int sum0,res0;for(int i1,r0;in;i){//不满足条件,则移动快指针while(ri||(sumkr1n)){sumsum(a[r]m);}//满足条件if(sumk)resres1n-r;sumsum-(a[i]m);}coutres\n;
//错误代码// for(int i1;in;i){// for(int ji;jn;j){// //至少有k个数是大于等于m// if(a[j]m)sum;// if(sumk){res1n-j;break;}// }// }// coutres\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/