双指针一般应用于维护两个队列,或者同一队列。

常见写法如下

 for (int i = 0, j = 0; i < n; i++){while (j < i && check(i, j)) j++;//每道题的具体逻辑}

双指针的核心思想是把如下O(n^2)的算法优化位O(n)

 for (int i = 0; i < n; i++){for (int j = 0; j < n; j++){//-----------}}

实例:给定一个字符串abc def ghe,输出字符串的每个字串

#include<iostream>
#include<string.h>
using namespace std;int main()
{char str[1000];gets(str);int n = strlen(str);for (int i = 0; i < n; i++){int j = i;while (j < n && str[j] != ' ')j++;//具体题目逻辑for (int k = i; k < j; k++)cout << str[k];cout << endl;i = j;}return 0;
}

数据结构【双指针算法】相关推荐

  1. 数据结构与算法--死磕二叉树

    死磕二叉树 近一年都比较关注算法相关的知识,也刷了不少题,之前的文章中大多也是算法相关的文章,但是感觉每次遇到树相关的题型都不能应对自如,因此还是有必要在相关知识上下功夫,因此有此次总结,以下是所有树 ...

  2. 数据结构与算法--再来聊聊数组

    再来聊聊数组 这篇我们来总结一下数组相关的一些算法,数组的特点在于我们能通过下标得到对应数据,时间复杂度在O(1),之前有多篇文章有数组相关的体系,一下来一个归纳: 数据结构与算法–判断扑克牌是否顺子 ...

  3. 数据结构与算法--有序数组中找出和为s的两个数字

    有序数组中找和为s的两个数字 题目:输入一个递增排序的数组array, 和一个数字s, 在数组中找出两个数,使得这两个数的和是s,如果有多对,输出一对即可. 最简单方案 双循环,每次获取一个数据,和数 ...

  4. 数据结构与算法--两个链表中第一个公共节点

    链表中第一个公共节点 公节点定义:同一个节点在两个链表中,并不是节点值相同 题目:输入两个节点,找出他们的第一个公共节点,节点定义如需 /*** 链表元素节点** @author liaojiamin ...

  5. 数据结构与算法--代码鲁棒性案例分析

    代码鲁棒性 鲁棒是robust的音译,就是健壮性.指程序能够判断输入是否符合规范,对不合要求的输入能够给出合理的结果. 容错性是鲁棒的一个重要体现.不鲁棒的代码发生异常的时候,会出现不可预测的异常,或 ...

  6. 算法工程师思维导图—数据结构与算法

    卖萌屋的妹子们(划掉)作者团整理的算法工程师思维导图,求职/自我提升/查漏补缺神器.该手册一共分为数据结构与算法.数学基础.统计机器学习和深度学习四个部分. 点击这里查看具体使用指南.该手册有两种获取 ...

  7. 数据结构与算法基础-数组

    原文:chenmingyu.top/data-struct- 数组 数组是用于储存多个相同类型数据的集合,使用一段连续的内存空间存储数据 数组作为最基本的数据结构,想必大家一定已经足够了解,数组的增删 ...

  8. JavaScript数据结构与算法 基础

    - 栈 1.栈的应用场景 场景一:十进制转二进制 后出来的余数反而要排到前面 把余数依次入栈,就可以实现倒序输出 场景二:有效的括号 越靠前的左括号,对应的左括号越靠前. 左括号入栈,右括号出栈,最后 ...

  9. 明翰数据结构与算法笔记V0.8(持续更新)

    文章目录 前言 数据结构 `线性表` `数组` `链表` `栈与队列` [串/字符串] 树 并查集 `二叉树` [二叉排序树/二叉搜索树] `红黑树` 红黑树操作 霍夫曼树 `堆` [大/小]根堆 可 ...

  10. python数据结构和算法 时间复杂度分析 乱序单词检测 线性数据结构 栈stack 字符匹配 表达式求值 queue队列 链表 递归 动态规划 排序和搜索 树 图

    python数据结构和算法 参考 本文github 计算机科学是解决问题的研究.计算机科学使用抽象作为表示过程和数据的工具.抽象的数据类型允许程序员通过隐藏数据的细节来管理问题领域的复杂性.Pytho ...

最新文章

  1. listener.ora、sqlnet.ora、tnsnames.ora 详解
  2. 百度地图 ip查询 service
  3. IO流基础,创建File对象与方法是用
  4. mysql生成随机验证码_MySQL 生成随机数字、字符串、日期、验证码及 UUID的方法...
  5. windows 系统监视器_使用Windows 7中的可靠性监视器对计算机问题进行故障排除
  6. mockito 使用_用Mockito回答
  7. 深度学习loss值变为0_利用TensorFlow2.0为胆固醇、血脂、血压数据构建时序深度学习模型(python源代码)...
  8. 使用VS2010编译Qt 5.6.1过程记录
  9. 设计模式笔记十七:迭代器模式
  10. DataGrid实现简单的行分组
  11. EXCEL中,函数中的双引号如何表示?
  12. 台式电脑显示器黑屏但灯亮_显示器黑屏无信号 但电脑一直在运行的原因和解决办法...
  13. 二次录入已经OUT! 4S店销售用小帮软件机器人教你做人!
  14. 监控系统整合告警平台实现邮件、短信、微信、电话语音和app等多方式报警
  15. matlab仿真step模块讲解,Simulink仿真教程(最好)
  16. html页面使用地图,前端PC端使用地图步骤(高德)
  17. Yuuki and a problem
  18. 如何理解高内聚,低耦合
  19. ubuntu 使用代理服务器 squid
  20. ppt编辑器android,ppt编辑器

热门文章

  1. 简单的测试可以防止最严重的故障
  2. spring和spring_Spring交易可见性
  3. Log4j 2.x XSD的描述不完整
  4. jpa 查询 列表_终极JPA查询和技巧列表–第3部分
  5. hibernate jpa_教程:Hibernate,JPA –第1部分
  6. 影子场vs.属性访问器接口第2轮
  7. 比较Java 8中的命令式和功能性算法
  8. 将Redis集成到您的Spring项目中
  9. smartgwt_高级SmartGWT教程,第2部分
  10. resteasy_Tomcat 7上具有RESTeasy JAX-RS的RESTful Web服务– Eclipse和Maven项目