栈的最小值

请设计一个栈,除了常规栈支持的pop与push函数以外,还支持min函数,该函数返回栈元素中的最小值。执行push、pop和min操作的时间复杂度必须为O(1)。示例:        MinStack  minStack  =  new  MinStack();        minStack.pu

#leetcode   #算法   #简单   #最小栈   #栈  

顺时针打印矩阵

输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字。示例  1:        输入:matrix  =  [[1,2,3],[4,5,6],[7,8,9]]        输出:[1,2,3,6,9,8,7,4,5]示例  2:        输入:matrix  =  [[1,2,3,

#leetcode   #算法   #中等  

查找常用字符

给定仅有小写字母组成的字符串数组  A,返回列表中的每个字符串中都显示的全部字符(包括重复字符)组成的列表。例如,如果一个字符在每个字符串中出现  3  次,但不是  4  次,则需要在最终答案中包含该字符  3  次。你可以按任意顺序返回答案。示例  1:        输入:["bel

#leetcode   #算法   #基础  

用两个栈实现队列

用两个栈实现一个队列。队列的声明如下,请实现它的两个函数  appendTail  和  deleteHead  ,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素,deleteHead  操作返回  -1  )(话说这个示例我盯了好久才看懂)示例  1:        输入

#leetcode   #算法   #有限资源   #简单   #日常生活案例   #汉诺塔  

斐波那契数列

写一个函数,输入n,求斐波那契(Fibonacci)数列的第n项。斐波那契数列的定义如下:F(0)=0,  F(1) =1F(N)=F(N-1)+F(N-2),其中N>1.斐波那契数列由0和1开始,之后的斐波那契数就是由之前的两数相加而得出。答案需要取模1e9+7(1000000007),如计

#leetcode   #算法   #简单   #动态规划  

爬楼梯

假设你正在爬楼梯。需要  n 阶你才能到达楼顶每次你可以爬  1  或  2  个台阶。你有多少种不同的方法可以爬到楼顶呢?注意:给定  n  是一个正整数。示例  1:        输入:  2        输出:  2        解释:  有两种方法可以爬到楼顶。        1.  

#leetcode   #算法   #简单   #动态规划  

种花问题

假设你有一个很长的花坛,一部分地块种植了花,另一部分却没有。可是,花卉不能种植在相邻的地块上,它们会争夺水源,两者都会死去。给定一个花坛(表示为一个数组包含0和1,其中0表示没种植花,1表示种植了花),和一个数 n 。能否在不打破种植规则的情况下种入 n 朵花?能则返回True,不能则返回False

#leetcode   #通向公式   #算法   #简单  

验证回文字符串Ⅱ

给定一个非空字符串 s,最多删除一个字符。判断是否能成为回文字符串。示例  1:        输入:  "aba"        输出:  True示例  2:        输入:  "abca"        输出:  True解释:  你可以删除c字符

#双指针   #leetcode   #算法   #简单  

早餐组合

小扣在秋日市集选择了一家早餐摊位,一维整型数组  staple  中记录了每种主食的价格,一维整型数组  drinks  中记录了每种饮料的价格。小扣的计划选择一份主食和一款饮料,且花费不超过  x  元。请返回小扣共有多少种购买方案。注意:答案需要以  1e9  +  7  (1000000007

#双指针   #leetcode   #算法   #简单   #插入排序   #二分法  

合并两个有序链表

合并两个有序链表        将两个升序链表合并为一个新的  升序  链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。         示例:                输入:1->2->4,  1->3->4                输出:1->

#排序   #leetcode   #算法   #简单