草庐IT

$leetcode

全部标签

【leetcode】学了栈和队列却觉得无用武之地?试试这几道题目吧!

 目录0.写在前面1.leetcode.20有效的括号2.leetcode.225用队列实现栈3.用栈实现队列4.设计循环队列0.写在前面这些题目所用语言为C语言,由于C语言未提供栈和队列的数据结构,所以需要我们手动实现栈和队列。此外熟练掌握栈和队列的性质对解题尤为重要。如果忘记了栈和队列的使用方法可在此直接跳转到栈和队列详解篇。<栈>的概念&结构&实现【C语言版】http://t.csdn.cn/lqe2X<队列>的概念&结构&实现【C语言版】http://t.csdn.cn/iXiZI1.leetcode.20有效的括号OJ链接:有效的括号(点此跳转)解题思路:遍历字符串,如果碰到'('或

【LeetCode】1022. 从根到叶的二进制数之和、563. 二叉树的坡度

 作者:小卢 专栏:《Leetcode》喜欢的话:世间因为少年的挺身而出,而更加瑰丽。                 ——《人民日报》 1022.从根到叶的二进制数之和1022.从根到叶的二进制数之和 题目描述:给出一棵二叉树,其上每个结点的值都是 0 或 1 。每一条从根到叶的路径都代表一个从最高有效位开始的二进制数。例如,如果路径为 0->1->1->0->1,那么它表示二进制数 01101,也就是 13 。对树上的每一片叶子,我们都要找出从根到该叶子的路径所表示的数字。返回这些数字之和。题目数据保证答案是一个32位整数。示例: 代码:intRootLeaf(structTreeNode

【LeetCode】1022. 从根到叶的二进制数之和、563. 二叉树的坡度

 作者:小卢 专栏:《Leetcode》喜欢的话:世间因为少年的挺身而出,而更加瑰丽。                 ——《人民日报》 1022.从根到叶的二进制数之和1022.从根到叶的二进制数之和 题目描述:给出一棵二叉树,其上每个结点的值都是 0 或 1 。每一条从根到叶的路径都代表一个从最高有效位开始的二进制数。例如,如果路径为 0->1->1->0->1,那么它表示二进制数 01101,也就是 13 。对树上的每一片叶子,我们都要找出从根到该叶子的路径所表示的数字。返回这些数字之和。题目数据保证答案是一个32位整数。示例: 代码:intRootLeaf(structTreeNode

【Leetcode】队列实现栈和栈实现队列

   目录一.【Leetcode225】队列实现栈1.链接2.题目再现 3.解法二.【Leetcode232】栈实现队列1.链接2.题目再现3.解法一.【Leetcode225】队列实现栈1.链接队列实现栈2.题目再现 3.解法这道题给了我们两个队列,要求去实现栈;首先,我们要知道栈和队列的特征:栈:后进先出,只能从栈顶入数据和出数据;队列:先进先出,从队尾入数据,队头出数据;根据这些特点,我们可以采用两边倒的方法来实现;具体来说:1.入栈时就是在不为空的队列插入数据,若两个队列都为空,就随便插入到一个队列中;2.出栈时将不为空的队列的数据倒入为空的队列中,当不为空的队列就剩一个数据时,就停止

【Leetcode】队列实现栈和栈实现队列

   目录一.【Leetcode225】队列实现栈1.链接2.题目再现 3.解法二.【Leetcode232】栈实现队列1.链接2.题目再现3.解法一.【Leetcode225】队列实现栈1.链接队列实现栈2.题目再现 3.解法这道题给了我们两个队列,要求去实现栈;首先,我们要知道栈和队列的特征:栈:后进先出,只能从栈顶入数据和出数据;队列:先进先出,从队尾入数据,队头出数据;根据这些特点,我们可以采用两边倒的方法来实现;具体来说:1.入栈时就是在不为空的队列插入数据,若两个队列都为空,就随便插入到一个队列中;2.出栈时将不为空的队列的数据倒入为空的队列中,当不为空的队列就剩一个数据时,就停止

LeetCode 139. 单词拆分(动态规划,DFS和BFS解决)

截止到目前我已经写了600多道算法题,其中部分已经整理成了pdf文档,目前总共有1000多页(并且还会不断的增加),大家可以免费下载下载链接:https://pan.baidu.com/s/1hjwK0ZeRxYGB8lIkbKuQgQ提取码:6666publicbooleanwordBreak(Strings,ListString>dict){boolean[]dp=newboolean[s.length()+1];for(inti=1;is.length();i++){//枚举k的值for(intk=0;ki;k++){//如果往前截取全部字符串,我们直接判断子串[0,i-1]//是否存在

LeetCode 139. 单词拆分(动态规划,DFS和BFS解决)

截止到目前我已经写了600多道算法题,其中部分已经整理成了pdf文档,目前总共有1000多页(并且还会不断的增加),大家可以免费下载下载链接:https://pan.baidu.com/s/1hjwK0ZeRxYGB8lIkbKuQgQ提取码:6666publicbooleanwordBreak(Strings,ListString>dict){boolean[]dp=newboolean[s.length()+1];for(inti=1;is.length();i++){//枚举k的值for(intk=0;ki;k++){//如果往前截取全部字符串,我们直接判断子串[0,i-1]//是否存在

【leetcode刷题】71.数组拆分 I——Java版

⭐欢迎订阅《leetcode》专栏,每日一题,每天进步⭐其实就是把从a1到an数组下标为奇数的数都加起来,题目花里胡哨的——leetcode此题热评前言哈喽,大家好,我是一条。糊涂算法,难得糊涂点击跳转到《糊涂算法》专栏学习java大厂面试必备数据结构和算法知识!Question561.数组拆分I难度:简单给定长度为2n的整数数组nums,你的任务是将这些数分成n对,例如(a1,b1),(a2,b2),…,(an,bn),使得从1到n的min(ai,bi)总和最大。返回该最大总和。示例1:输入:nums=[1,4,3,2]输出:4解释:所有可能的分法(忽略元素顺序)为:1.(1,4),(2,3

【leetcode刷题】71.数组拆分 I——Java版

⭐欢迎订阅《leetcode》专栏,每日一题,每天进步⭐其实就是把从a1到an数组下标为奇数的数都加起来,题目花里胡哨的——leetcode此题热评前言哈喽,大家好,我是一条。糊涂算法,难得糊涂点击跳转到《糊涂算法》专栏学习java大厂面试必备数据结构和算法知识!Question561.数组拆分I难度:简单给定长度为2n的整数数组nums,你的任务是将这些数分成n对,例如(a1,b1),(a2,b2),…,(an,bn),使得从1到n的min(ai,bi)总和最大。返回该最大总和。示例1:输入:nums=[1,4,3,2]输出:4解释:所有可能的分法(忽略元素顺序)为:1.(1,4),(2,3

leetcode--无重复字符的最长子串

前言今天做题做到这道题看到一种很神奇的做法,想写这一篇博客记录一下具体的思路过程题目描述我们先来看题目的描述我们要注意一下这个示例三的描述,题目说的是要求子串,子串在这个原字符串中应该是连续的,所以对于“pwwkew”这个字符串的子串就应该是wke而并非是pwke。解题思路这道题我们的解题思路是“移动窗口”的方法,从字符串首个元素开始遍历,当出现重复字符的时候就把起点从首元素改为这个重复字符的位置,并把上一次从开始到找到第一个重复字符时的子串长度,以此类推,每次找到重复的字符就截断,把起点重设并记录该子串长度与前一次的子串长度比较。最后返回最大子串的长度。变量设置根据上述的解题思路来设置合适的