Yujun's Blog

岛屿的周长

给定一个包含  0  和  1  的二维网格地图,其中  1  表示陆地  0  表示水域。网格中的格子水平和垂直方向相连(对角线方向不相连)。整个网格被水完全包围,但其中恰好有一个岛屿(或者说,一个或多个表示陆地的格子相连组成的岛屿)。岛屿中没有“湖”(“湖”  指水域在岛屿内部且不和岛屿周围的水

#leetcode   #算法   #简单  

独一无二的出现次数

给你一个整数数组arr,请你帮忙统计数组中每个数的出现次数。如果每个数的出现次数都是独一无二的,就返回true;否则返回  false。示例  1:        输入:arr  =  [1,2,2,1,1,3]        输出:true        解释:在该数组中,1  出现了  3  次

#leetcode   #算法   #简单  

二叉搜索树中的众数

给定一个有相同值的二叉搜索树(BST),找出  BST  中的所有众数(出现频率最高的元素)。假定  BST  有如下定义:        结点左子树中所含结点的值小于等于当前结点的值        结点右子树中所含结点的值大于等于当前结点的值        左子树和右子树都是二叉搜索树例如:   

#leetcode   #二叉树   #简单   #排序二叉树   #二叉搜索树   #中序遍历  

汉诺塔问题

在经典汉诺塔问题中,有  3  根柱子及  N  个不同大小的穿孔圆盘,盘子可以滑入任意一根柱子。一开始,所有盘子自上而下按升序依次套在第一根柱子上(即每一个盘子只能放在更大的盘子上面)。移动圆盘时受到以下限制:        (1)  每次只能移动一个盘子;        (2)  盘子只能从柱子

#leetcode   #算法   #简单   #汉诺塔  

最小移动次数使数组元素相等

给定一个长度为  n  的非空整数数组,找到让数组所有元素相等的最小移动次数。每次移动将会使  n  -  1  个元素增加  1。示例:        输入:  [1,2,3]        输出:  3        解释:  只需要3次移动(注意每次移动会增加两个元素的值):         

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

另一个树的子树

给定两个非空二叉树  s  和  t,检验  s  中是否包含和  t  具有相同结构和节点值的子树。s  的一个子树包括  s  的一个节点和这个节点的所有子孙。s  也可以看做它自身的一棵子树。示例  1:给定的树  s: 3 / \ 4 5 / \ 1 2给定的树 

#leetcode   #算法   #二叉树   #简单   #KMP  

栈的最小值

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

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