先说stack的题目

stack的实现:链表,数组

题目:

(1)简单的:min stack,一个数组实现三个stack

(2)经典的stack问题:经典汉诺塔问题,逆波兰式计算或者产生逆波兰式,简化文件路径,验证括号对是否合法,找出最长有效括号(贪心+stack求解)

(3)涉及tree的遍历问题:tree中序遍历的迭代解法,二叉搜索树的两节点和(two sum思路)

(4)***stack排序问题***:为stack排序,从柱状图里找最大矩形(本质上类似stack排序),构造数组的maxtree(和最大矩形题目类似思路)

(5)蛋疼的其他问题:仅使用递归反转一个stack(两个递归函数,***hard***)

再说队列的题目

队列的实现:链表

题目:猫狗队列(链表合并),两个stack实现队列,数组滑动窗口的最大值(类似stack排序做,和柱状里找最大矩形题目解法有点类似,***hard***)

最后是堆的题目

题目:

(1)经典问题:合并多个有序链表,行列有序矩阵topK(k*logk解法,j+1,i+1)

(2)***需要观察总结规律的***:数组滑动窗口的最大值(使用优先级队列剔除“过期”的最大值),最大值-最小值<=num的子数组数目(滑动窗口+堆)

算法总结——数组和字符串问题
先说字符串的题目

(1)简单问题:变形词,字符判重,是否为字符串旋转,reverse字符串,字符串压缩(a3b2这种,计数器),单词替换,翻转字符串(通常两两翻转搞定),括号字符串问题(stack问题)

(2)经典问题:数字验证,字符串转数字(状态机),编辑距离(DP),公式字符串求值(python eval,本质上也是状态机实现),Trie,正则表达式匹配(递归简单,DP难)

(3)dfs:提取单词(dfs,如果是最多单词则dp),从去.字串里提取IP地址,字符串的全排列(abc、acb...使用swap+一个for)

(3)涉及二分查找问题:有序+NULL的字符串数组查找,01字符串边界问题

(4)涉及双指针问题:单词数组中两个单词的最小距离,字符串中最长不重复子串,一个字符串中包含另外一个字符串(不要求有序)的最长子串长度,

(5)DP问题:添加最少字符整体变成回文(双dp)

(6)其他:产生括号对(递归+剪枝),数字字符串相乘(用数组存进位)

再说数组和矩阵的题目

(1)简单的问题:stringbuffer,两个有序数组归并问题

(2)经典问题:topK,数组中出现次数超过一半的数字,2sum问题,prefixsum问题(数组累加和为特定值,和双指针区别,最大值的话就dp),快排partition,time range排序重叠区间问题

(3)bfs或dfs:最短通路

(3)涉及二分查找问题:行列排序的矩阵中查找(对角线二分或者右上角比较),旋转数组查找,两个有序数组合并后的中位数或kth数(难)

(4)涉及排序问题:外部排序,1~N数字排序,矩阵的topK,排序后相邻数最大差值(桶排序),数组配对(计数排序)

(4)涉及双指针问题:最长可整个子数组(子数组max-min=1),全正数数组sum为k的最长子数组

(5)DP问题:子数组最大累加和(延伸:子矩阵最打累加和),子数组的最大累积乘积

(6)其他:N*M图像旋转90度问题,矩阵行列清零,转圈(之字形)打印矩阵或者矩阵顺时针旋转90度(使用左上角右下角坐标做基准,递归),数位重组

转载于:https://www.cnblogs.com/bonelee/p/10188204.html

算法总结——堆栈、字符串、数组类题目相关推荐

  1. 【二分查找延伸--实际算法应用】数组类题目

    声明:博主是基于labuladong微信公众号文章模板驱动刷题,进行的自我刷题感悟和记录在此. 模板详情见labuladong微信公众号文章文末:原创于自己在此基础上的笔记.感悟.整合其它文献和自己的 ...

  2. MFC CStringArray 字符串数组类 使用方法

    https://blog.csdn.net/thanklife/article/details/76836487

  3. 算法④:把字符串变成数字

    算法④:把字符串变成数字 ​ 题目链接:https://leetcode-cn.com/problems/ba-zi-fu-chuan-zhuan-huan-cheng-zheng-shu-lcof/ ...

  4. .net 遍历数组找重复值写入一个新数组_面试 | 数组类算法精析

    点击上方蓝字设为星标 每周一.三.五上午 8:30 准时推送 下面开始今天的学习- 面试中的算法问题,有很多并不需要复杂的数据结构支撑.就是用数组,就能考察出很多东西了.其实,经典的排序问题,二分搜索 ...

  5. 【算法基础】LeetCode股票交易类算法题目总结(一次交易,两次交易,无数次交易)...

    大家好,前一段时间的基金市场波动很大啊,也就又诞生了很多"韭菜",在这里千寻也提醒大家"股市有风险,入市需谨慎",玩基金一定用不着急用的钱哦~ 刷算法题目,应该 ...

  6. 字符串工具类、数组工具类、集合工具类、转型操作工具类、编码与解码操作工具类...

    package hjp.smart4j.framework.util;import org.apache.commons.lang3.StringUtils;/*** 字符串工具类*/ public ...

  7. 算法--------数组类---------总结

    前言: 写算法也写了十来天了,都是数组类的.今天完成了一个课题,觉得需要总结下.今天突然很遗憾的发现,自己之前写过的算法,现在自己回想起来,也不知道怎么解决. 温故而知新.决定,今天就不写算法题了,决 ...

  8. Java黑皮书课后题第10章:**10.25(新的字符串split方法)String类中的split方法会返回一个字符串数组,该数组是由分隔符分隔开的子串构成的

    Java黑皮书课后题第10章:**10.25(新的字符串split方法) 题目 代码 运行实例 题目 代码 public class Test25 {public static String[] sp ...

  9. spring字符串判空_字符串工具类StringUtils实现字符串是否中文、字符串分割/判空/替换/查找、是否包含乱码及字符串数组合并等常规操作...

    一.前言 关于字符串工具类StringUtils实现字符串是否包含isChinese中文.是否包含isMessyCode乱码.常规数据类型转换.替换/删除/判空.两字符串数组mergeStringAr ...

最新文章

  1. 超棒的微软Metro风格Logo设计
  2. uboot流程——命令行模式以及命令处理介绍
  3. GitHub图片无法显示
  4. Unity中BVH骨骼动画驱动的可视化理论与实现
  5. [BZOJ]1023: [SHOI2008]cactus仙人掌图
  6. 多边形上点的顺序排序_一种寻找多边形视觉中心的新算法
  7. XML模板解析————Dom4j解析xml案例分析
  8. STM32串口DMA超时接收方法,可大大节约CPU时间
  9. 华为mate10pro测试软件,华为Mate10和华为Mate10Pro的区别在哪里?华为Mate10和华为Mate10Pro对比测评告诉你(附全文)...
  10. pandas dataframe对多列同时排序
  11. SASL讲解,以及在Spark中的应用
  12. 平衡二叉树、B树、B+树、B*树
  13. 计算机房防凝露保温材料,机房保温的方案.docx
  14. 极速办公(Excel)如何方框内打勾
  15. 中国网络游戏行业发展模式创新与投资前景调研报告2021-2027年
  16. Android 本地化翻译插件,解放你的双手! AndroidLocalizePlugin
  17. SQL语句中case、when、then的使用
  18. 问题 B: Bumped!
  19. 微信公众号【黄小斜】和【Java技术江湖】
  20. ggplot2-标度、坐标轴和图例7

热门文章

  1. php xxtea加密,PHP实现的XXTEA加密解密算法示例
  2. oracle指定用户SID,如何修改oracle SID
  3. 分布式锁能解决 mysql死锁吗_mysql死锁问题分析
  4. python打开电脑摄像头_Python调用摄像头
  5. centos7 安装git_如何在 CentOS 7 上挂载 Amazon EFS 文件系统?
  6. jquery的四层联动插件jquerySelect
  7. 一个Java程序员的面试心得,最终入职阿里
  8. 【深度学习】深入浅出 CRF-RNN Layer(The End-to-end)
  9. 【深度学习】腹部CT的肝脏肿瘤分割的探索
  10. python【力扣LeetCode算法题库】6-Z 字形变换