跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客GitHub 精选镜像AI 生图工具UI配色美学隐私政策关于联系
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
C++算法

双指针算法:快乐数与盛水最多的容器

双指针算法在快乐数和盛水最多容器问题中的应用。快乐数通过快慢指针检测循环,若最终收敛至 1 则为快乐数;盛水最多容器利用双指针从两端向中间移动,每次移动较短边以寻找更大面积。代码实现包含 C++ 版本,分别展示了位运算求和与区间收缩逻辑。

活在当下发布于 2026/3/22更新于 2026/7/2040 浏览
双指针算法:快乐数与盛水最多的容器

快乐数

1. 题目解析

题目传送门

图片描述

2. 原理解析

第一种情况:数最后变成 1

图片描述

第二种情况:无限循环但不是 1

图片描述

但两种都可以抽象成一种,有点像之前做过的带环链表

图片描述

解法:快慢双指针

  1. 定义快慢指针
  2. 慢指针每次向后移动一步,快指针每次向后移动两步
  3. 判断相遇时候的值

3. 代码实现

class Solution {
public:
    int BitSum(int n) // 返回每一位数上的平方和
    {
        int sum = 0;
        while (n) {
            int m = n % 10;
            sum += m * m;
            n = n / 10;
        }
        return sum;
    }
    bool isHappy {
         slow = n, fast = (n);
         (slow != fast) {
            slow = (slow);
            fast = ((fast));
        }
         slow == ;
    }
};
(int n)
int
BitSum
while
BitSum
BitSum
BitSum
return
1

盛水最多的容器

题目传送门

1. 题目解析

图片描述

2. 原理解析

解法一:暴力枚举

时间复杂度 O(N^2),会超时

解法二:利用单调性,使用双指针

图片描述

在这一组数中拿出一个区间 6,2,5,4

我们先用最两边的数算一个容积,然后小的那个固定住 (也就是 4),向内枚举

如果遇到比它小的数 (也就是 2),高度跟宽度都减小,v 减小

如果遇到比它大的数 (也就是 5),高度不变(还是 4),宽度减小,v 减小

所以我们可以直接舍去小的那一个,在研究下一个区间

3. 代码实现

class Solution {
public:
    int maxArea(vector<int>& height) {
        int left = 0, right = height.size() - 1, ret = 0;
        while (left != right) {
            int v = min(height[left], height[right]) * (right - left);
            ret = max(ret, v);
            if (height[left] < height[right]) left++;
            else right--;
        }
        return ret;
    }
};

目录

  1. 快乐数
  2. 1. 题目解析
  3. 2. 原理解析
  4. 3. 代码实现
  5. 盛水最多的容器
  6. 1. 题目解析
  7. 2. 原理解析
  8. 3. 代码实现
  • 免费图片AI生成工具免费生成了解详情
  • Magick API 一键接入全球大模型注册送1000万token查看
  • 免费图片视频在线生成30秒,将你的创意变成现实开始设计
  • X/Twitter免费视频下载器免登陆无限额度免费视频解析下载了解详情
  • 100+免费在线小游戏爽一把
极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

更多推荐文章

查看全部
  • Gazebo 机器人三维物理仿真平台核心解析
  • 基于 SSM 框架与 Vue 的 Web 在线投稿系统设计与实现
  • 网络安全初学者环境搭建指南:Kali Linux、phpStudy、Pikachu 及 BurpSuite 安装配置
  • 基于大语言模型搭建私有化知识库
  • AI 产品经理入门指南与进阶路线图
  • AI 写作辅助平台深度评测:炼字工坊与蛙蛙写作
  • Stable Diffusion 性能优化:Z-Image-Turbo 轻量化优势测评
  • MaxKB4j 开源智能体搭建平台技术详解
  • Ollama 本地模型管理与 Open WebUI 部署指南
  • Protobuf、JSON、XML 核心对比与 C++ 实现
  • 2026 主流 AIGC 长文本写作工具横向评测与选型指南
  • Python 虚拟环境对比:venv 与 Anaconda/Miniconda 选型指南
  • 在 Cursor 中配置和使用 MCP 服务实现自动化任务
  • 高德地图 Web 端开发:API 安装与 Marker 地理编码实战
  • 企业构建行业大模型的策略与实施路径
  • 波士顿动力机器人技术解析:从 Spot 到 Atlas
  • 超大规模多模态交通数据集:320TB+ 行车视频与道路监控资源
  • 鸿蒙金融理财全栈:生态合作与数据变现架构设计
  • 接入第三方 OpenAI 兼容模型到 GitHub Copilot
  • Edict:基于三省六部制的 AI Agent 协作架构解析

相关免费在线工具

  • 加密/解密文本

    使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online

  • Gemini 图片去水印

    基于开源反向 Alpha 混合算法去除 Gemini/Nano Banana 图片水印,支持批量处理与下载。 在线工具,Gemini 图片去水印在线工具,online

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online

  • Markdown转HTML

    将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online

  • HTML转Markdown

    将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML转Markdown在线工具,online