双指针问题5(c++)

双指针问题5(c++)

概念

双指针,顾名思义,就是用两个指针解决问题

有些问题用单指针会出现超时等问题,这时就需要用到双指针

双指针由两个指针组成,一般是左右指针,或前后指针

通过两个指针配合变化,用更短的时间高效解决问题

题目

(续上一篇,如需了解上一篇题目,请移步主页观看)

合并有序数组

#include <bits/stdc++.h> #define ll long long using namespace std; int la,lb,lab; int a[20010],b[10010]; int main() { cin>>la; for(int i = 1;i<=la;i++) { cin>>a[i]; } cin>>lb; for(int i = 1;i<=lb;i++) { cin>>b[i]; } lab = la+lb; int ai = la+1,bi = lb+1,abi = lab+1; while(ai>1&&bi>1) { if(a[ai-1]>b[bi-1]) a[--abi] = a[--ai]; else a[--abi] = b[--bi]; } while(bi>1) a[--abi] = b[--bi]; for(int i = 1;i<=lab;i++) cout<<a[i]<<" "; return 0; }

完美数列

#include <bits/stdc++.h> #define ll long long using namespace std; int n,p; int a[10010]; int main() { cin>>n>>p; for(int i = 1;i<=n;i++) { cin>>a[i]; } sort(a+1,a+n+1); int fast = 0,slow = 1; int ma,mi; mi = a[slow]; int mama = -999999999; while(fast<n) { while(fast<n) { ma = a[++fast]; int x = mi*p; if(ma<=x) mama = max(mama,fast-slow+1); else break; } while(slow<fast) { mi = a[++slow]; int x = mi*p; if(ma<=x) { mama = max(mama,fast-slow+1); break; } } } cout<<mama; return 0; }

反转元音字母

#include <bits/stdc++.h> #define ll long long using namespace std; string a; char yy[] = {'a','e','i','o','u'}; int main() { cin>>a; int n = a.size(); int l = 0,r = n-1; while(l<r) { bool lf = false; bool rf = false; for(int i = 0;i<5;i++) { if(a[l]==yy[i]) lf = true; if(a[r]==yy[i]) rf = true; } if(lf==false) l++; if(rf==false) r--; if(lf==true&&rf==true) { swap(a[l],a[r]); l++; r--; } } cout<<a; return 0; }

验证回文串2

#include <bits/stdc++.h> #define ll long long using namespace std; string a; int n; bool chushi(); bool hou(int,int); int main() { cin>>a; n = a.size(); if(chushi()==true) cout<<"true"; else cout<<"false"; return 0; } bool chushi() { int l = 0,r = n-1; while(l<r) { if(a[l]==a[r]) l++,r--; else { if((hou(l+1,r)|hou(l,r-1))==true) return true; else return false; } } return true; } bool hou(int l,int r) { while(l<r) { if(a[l]==a[r]) l++,r--; else return false; } return true; }

最接近的三数之和

#include <bits/stdc++.h> #define ll long long using namespace std; int n,a[10010],target,misum,micha; int main() { micha = 999999999; cin>>n; for(int i = 1;i<=n;i++) { cin>>a[i]; } cin>>target; sort(a+1,a+n+1); for(int i = 1;i<=n-2;i++) { int l = i+1,r = n; while(l<r) { int sum = a[l]+a[i]+a[r]; int cha = sum-target; if(cha<0) cha = target-sum,l++; else r--; if(cha<micha) { micha = cha; misum = sum; } } } cout<<misum; return 0; }

三数之和的多种可能

#include <bits/stdc++.h> #define ll long long using namespace std; int n,a[10010],target; int cnt; int main() { cin>>n; for(int i = 1;i<=n;i++) { cin>>a[i]; } cin>>target; sort(a+1,a+n+1); for(int i = 1;i<=n-2;i++) { int l = i+1; int r = n; while(l<r) { int sum = a[i]+a[l]+a[r]; if(sum==target) { cnt++; // cout<<cnt<<" "<<i<<" "<<l<<" "<<r<<" "<<a[i]<<" "<<a[l]<<" "<<a[r]<<endl; int p = r-1; while(a[p]==a[r]&&p>l) { cnt++; p--; // cout<<cnt<<" "<<i<<" "<<l<<" "<<p<<" "<<a[i]<<" "<<a[l]<<" "<<a[p]<<endl; } l++; } if(sum>target) r--; if(sum<target) l++; } } cout<<cnt; return 0; }

Read more

Ubuntu 24.04 安装搜狗输入法完整教程

摘要 Ubuntu 24.04默认使用Fcitx5和Wayland,与搜狗输入法的Fcitx4框架存在兼容性问题。本教程通过降级到Fcitx4、切换到Xorg显示服务器、安装必要依赖等步骤,解决安装冲突和显示异常问题。经实际验证,可成功在Ubuntu 24.04上稳定运行搜狗输入法。 前言 Ubuntu 24.04 LTS 作为最新的长期支持版本,默认使用 Fcitx5 输入法框架,而搜狗输入法目前仍然基于 Fcitx4 框架。本教程将详细介绍如何在 Ubuntu 24.04 上成功安装搜狗输入法,并解决常见的兼容性问题。 环境说明 * 系统版本:Ubuntu 24.04 LTS * 搜狗输入法版本:sogoupinyin_4.2.1.145_amd64.deb * 输入法框架:Fcitx4(需要从 Fcitx5 降级)

By Ne0inhk
[特殊字符]颠覆MCP!Open WebUI新技术mcpo横空出世!支持ollama!轻松支持各种MCP Server!Cline+Claude3.7轻松开发论文检索MCP Server!

[特殊字符]颠覆MCP!Open WebUI新技术mcpo横空出世!支持ollama!轻松支持各种MCP Server!Cline+Claude3.7轻松开发论文检索MCP Server!

🔥🔥🔥本篇笔记所对应的视频:🚀颠覆MCP!Open WebUI新技术mcpo横空出世!支持ollama!轻松支持各种MCP Server!Cline+Claude3.7轻松开发MCP服务_哔哩哔哩_bilibili Open WebUI 的 MCPo 项目:将 MCP 工具无缝集成到 OpenAPI 的创新解决方案 随着人工智能工具和模型的快速发展,如何高效、安全地将这些工具集成到标准化的 API 接口中成为了开发者面临的重要挑战。Open WebUI 的 MCPo 项目(Model Context Protocol-to-OpenAPI Proxy Server)正是为了解决这一问题而设计的。本文将带您深入了解 MCPo 的功能、优势及其对开发者生态的影响。 什么是 MCPo? MCPo 是一个简单、可靠的代理服务器,能够将任何基于 MCP 协议的工具转换为兼容

By Ne0inhk
Qwen3+Qwen Agent 智能体开发实战,打开大模型MCP工具新方式!(一)

Qwen3+Qwen Agent 智能体开发实战,打开大模型MCP工具新方式!(一)

系列文章目录 一、Qwen3+Qwen Agent 智能体开发实战,打开大模型MCP工具新方式!(一) 二、Qwen3+Qwen Agent +MCP智能体开发实战(二)—10分钟打造"MiniManus" 前言 要说最近人工智能界最火热的开源大模型,必定是阿里发布不久的Qwen3系列模型。Qwen3模型凭借赶超DeepSeek-V3/R1的优异性能,创新的混合推理模式,以及极强的MCP能力迅速成为AI Agent开发的主流基座模型。大家可参考我的文章一文解析Qwen3大模型详细了解Qwen3模型的核心能力。有读者私信我: “Qwen3官网特地强调增强了Agent和代码能力,同时加强了对MCP的支持,那么我该如何利用Qwen3快速开发MCP应用呢?” 这就就需要使用我们今天的主角——Qwen官方推荐的开发工具Qwen-Agent ,本期分享我们就一起学习快速使用Qwen3+QwenAgent 接入MCP服务端,快速开发AI Agent应用! 一、注册 Qwen3 API-Key 本次分享通过阿里云百炼大模型服务平台API Key请求方式调用Qwen3大模型,获取服务平台

By Ne0inhk