文章目录前言一、栈1.1栈的概念结构1.2栈的实现二、队列2.1队列的概念及结构2.2队列的实现三、栈和队列面试题总结前言一、栈1.1栈的概念结构栈也是一种线性表,数据在逻辑上挨着存储。只允许在固定的一端进行插入和删除元素。进行插入和删除操作的一端叫栈顶,另一端叫栈底。符合LIFO先进后出。压栈:插入操作。出栈:删除操作。1.2栈的实现栈的实现用数组实现更好,因为完美符合数组的尾插尾删。数组的缓存利用率高一点。小练习:支持动态增长的栈:typedefintSTDataType;typedefstructStack{STDataType*_a;int_top;//栈顶int_capacity;/
文章目录前言一、栈1.1栈的概念结构1.2栈的实现二、队列2.1队列的概念及结构2.2队列的实现三、栈和队列面试题总结前言一、栈1.1栈的概念结构栈也是一种线性表,数据在逻辑上挨着存储。只允许在固定的一端进行插入和删除元素。进行插入和删除操作的一端叫栈顶,另一端叫栈底。符合LIFO先进后出。压栈:插入操作。出栈:删除操作。1.2栈的实现栈的实现用数组实现更好,因为完美符合数组的尾插尾删。数组的缓存利用率高一点。小练习:支持动态增长的栈:typedefintSTDataType;typedefstructStack{STDataType*_a;int_top;//栈顶int_capacity;/
目录:前言一、题目--无重复字符的最长子串(一)双层循环1.题目分析2.图解3.示例(二)滑动窗口1.题目分析2.图解3.示例(三)滑动窗口--改进1.题目分析2.图解3.示例二、题目--长度最小的子数组(一)滑动窗口1.题目解析2.图解3.示例总结前言大家好,今天我们来讨论一下LeetCode上两道数组方面的例题来为大家讲解滑动窗口的使用。题目不难,方法很多。熊猫希望通过第一道简单的题目来使大家了解到不同的解题方法。一、题目--无重复字符的最长子串题目描述:给定一个字符串s,请你找出其中不含有重复字符的最长子串的长度。点击跳转(一)双层循环1.题目分析题目要求找出不含重复字符的最长子串,那么
目录:前言一、题目--无重复字符的最长子串(一)双层循环1.题目分析2.图解3.示例(二)滑动窗口1.题目分析2.图解3.示例(三)滑动窗口--改进1.题目分析2.图解3.示例二、题目--长度最小的子数组(一)滑动窗口1.题目解析2.图解3.示例总结前言大家好,今天我们来讨论一下LeetCode上两道数组方面的例题来为大家讲解滑动窗口的使用。题目不难,方法很多。熊猫希望通过第一道简单的题目来使大家了解到不同的解题方法。一、题目--无重复字符的最长子串题目描述:给定一个字符串s,请你找出其中不含有重复字符的最长子串的长度。点击跳转(一)双层循环1.题目分析题目要求找出不含重复字符的最长子串,那么
583.两个字符串的删除操作(中等)思路这道题的状态定义和1143.最长公共子序列相同,「定义一个dp数组,其中dp[i]表示到位置i为止的子序列性质,并不是必须以i结尾」,此时dp数组的最后一位即为题目所求,不需要对每个位置进行统计。状态定义dp[i][j]表示到字符串word1的第i个字符为止、word2的第j个字符为止,使得两个字符串相等的最小删除次数。状态转移方程对于本道题,遍历两个字符串的所有位置,当i>0且j>0时,考虑两种情况:如果遍历到的字符相同,说明这两个字符匹配,无需进行任何操作,那么此时的最小删除次数不变,即dp[i][j]=dp[i-1][j-1];如果遍历到的字符不同
🚀算法题🚀🌲算法刷题专栏|面试必备算法|面试高频算法🍀🌲越难的东西,越要努力坚持,因为它具有很高的价值,算法就是这样✨🌲作者简介:硕风和炜,CSDN-Java领域优质创作者🏆,保研|国家奖学金|高中学习JAVA|大学完善JAVA开发技术栈|面试刷题|面经八股文|经验分享|好用的网站工具分享💎💎💎🌲恭喜你发现一枚宝藏博主,赶快收入囊中吧🌻🌲人生如棋,我愿为卒,行动虽慢,可谁曾见我后退一步?🎯🎯🚀算法题🚀🍔目录🚩题目链接⛲题目描述🌟求解思路&实现代码&运行结果⚡双指针🥦求解思路🥦实现代码🥦运行结果💬共勉🚩题目链接167.两数之和II-输入有序数组⛲题目描述给你一个下标从1开始的整数数组number
题目链接Leetcode.130被围绕的区域mid题目描述给你一个mxn的矩阵board,由若干字符'X'和'O',找到所有被'X'围绕的区域,并将这些区域里所有的'O'用'X'填充。示例1:输入:board=[[“X”,“X”,“X”,“X”],[“X”,“O”,“O”,“X”],[“X”,“X”,“O”,“X”],[“X”,“O”,“X”,“X”]]输出:[[“X”,“X”,“X”,“X”],[“X”,“X”,“X”,“X”],[“X”,“X”,“X”,“X”],[“X”,“O”,“X”,“X”]]解释:被围绕的区间不会存在于边界上,换句话说,任何边界上的‘O’都不会被填充为‘X’。任何不
题目链接Leetcode.130被围绕的区域mid题目描述给你一个mxn的矩阵board,由若干字符'X'和'O',找到所有被'X'围绕的区域,并将这些区域里所有的'O'用'X'填充。示例1:输入:board=[[“X”,“X”,“X”,“X”],[“X”,“O”,“O”,“X”],[“X”,“X”,“O”,“X”],[“X”,“O”,“X”,“X”]]输出:[[“X”,“X”,“X”,“X”],[“X”,“X”,“X”,“X”],[“X”,“X”,“X”,“X”],[“X”,“O”,“X”,“X”]]解释:被围绕的区间不会存在于边界上,换句话说,任何边界上的‘O’都不会被填充为‘X’。任何不
石子游戏leetcode877.石子游戏题目描述暴力递归代码演示动态规划动态规划专题:leetcode877.石子游戏来源:力扣(LeetCode)链接:https://leetcode.cn/problems/stone-game题目描述Alice和Bob用几堆石子在做游戏。一共有偶数堆石子,排成一行;每堆都有正整数颗石子,数目为piles[i]。游戏以谁手中的石子最多来决出胜负。石子的总数是奇数,所以没有平局。Alice和Bob轮流进行,Alice先开始。每回合,玩家从行的开始或结束处取走整堆石头。这种情况一直持续到没有更多的石子堆为止,此时手中石子最多的玩家获胜。假设Alice和Bob都
朋友们、伙计们,我们又见面了,本期来给大家解读一下LeetCode中第965道二叉树OJ题,如果看完之后对你有一定的启发,那么请留下你的三连,祝大家心想事成!数据结构与算法专栏:数据结构与算法个 人 主 页 :stackY、C语言专栏:C语言:从入门到精通LeetCode--965.单值二叉树: https://leetcode.cn/problems/univalued-binary-tree/目录1.题目介绍2.实例演示3.解题思路1.题目介绍如果二叉树每个节点都具有相同的值,那么该二叉树就是单值二叉树。只有给定的树是单值二叉树时,才返回 true;否则返回 false。2.实例演示