自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

超悦人生

原创公众号【超悦编程】,专注于算法、数据结构和互联网基础知识。

原创 正则表达式匹配(java实现)

问题描述 请实现一个函数用来匹配包括’.‘和’ * ‘的正则表达式。模式中的字符’.'表示任意一个字符,而 ’ * '表示它前面的字符可以出现任意次(包含0次)。 在本题中,匹配是指字符串的所有字符匹配整个模式。例如,字符串"aaa"与模式"a....

2019-10-31 10:26:14 75 0

原创 LeetCode655.Print Binary Tree(java实现)

问题描述 Print a binary tree in an m*n 2D string array following these rules: The row number m should be equal to the height of the given binary tree. T...

2019-10-31 09:43:14 65 0

原创 对称二叉树(java实现)

问题描述 请实现一个函数,用来判断一颗二叉树是不是对称的。注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的。 解决方案 采用层次遍历,注意空节点也要加入队列,代码如下: /* public class TreeNode { int val = 0; TreeNod...

2019-10-30 19:52:03 158 0

原创 删除链表中重复的节点(Java实现)

问题描述 在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表1->2->3->3->4->4->5 处理后为 1->2->5 解决方案 注意边界即可,代码如下: /* public c...

2019-10-30 19:09:33 182 0

原创 按之字形顺序打印二叉树(Java实现)

问题描述 请实现一个函数按照之字形打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右至左的顺序打印,第三行按照从左到右的顺序打印,其他行以此类推。 解决方案 代码如下: import java.util.ArrayList; import java.util.LinkedList; ...

2019-10-28 23:01:25 77 0

原创 把二叉树打印成多行(Java实现)

问题描述 从上到下按层打印二叉树,同一层结点从左至右输出。每一层输出一行。 解决方案 代码如下: import java.util.ArrayList; import java.util.LinkedList; /* public class TreeNode { int val ...

2019-10-28 22:50:48 27 0

原创 二进制中1的个数(Java实现)

问题描述 输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。 解决方案 代码如下: public int NumberOf1(int n) { if(n == 0) return 0; boolean flag = fa...

2019-10-28 22:29:46 80 0

原创 矩形覆盖

问题描述 我们可以用2 * 1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2 * 1的小矩形无重叠地覆盖一个2 * n的大矩形,总共有多少种方法? 解决方案 用动态规划来解,f(n) = f(n - 1) + f(n - 2) 代码如下: public int RectCover(int...

2019-10-28 20:51:12 22 0

原创 用两个栈实现队列(Java实现)

题目描述 用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。 解决方案 代码如下: import java.util.Stack; public class Solution { Stack<Integer> stack1 = new ...

2019-10-28 20:40:38 24 0

原创 LeetCode4. Median of Two Sorted Arrays(java实现)

问题描述 There are two sorted arrays nums1 and nums2 of size m and n respectively. Find the median of the two sorted arrays. The overall run time comple...

2019-10-25 23:56:20 28 0

原创 LeetCode25. Reverse Nodes in k-Group(每k个节点反转链表,java实现)

问题描述 k个一组反转链表。 解决方案 代码如下: //测试 public static void main(String[] args){ Node root = new Node(1); root.next = new Node(2); ...

2019-10-25 16:00:17 69 0

原创 leetcode.637 二叉树的层平均值(java实现)

问题描述 Given a non-empty binary tree, return the average value of the nodes on each level in the form of an array. Example 1: Input: 3 / \ 9...

2019-10-25 11:12:15 48 0

原创 LeetCode113. Path Sum II(java)

问题描述 Given a binary tree and a sum, find all root-to-leaf paths where each path’s sum equals the given sum. Note: A leaf is a node with no children....

2019-10-25 10:37:54 42 0

原创 矩阵的转置(O(1)空间复杂度)(Java实现)

问题描述 对矩阵求转置,要求空间复杂度为O(1)。 解决方案 public static void matrixTranspose(int[] arr,m,n){ if(arr == null || arr.length <= 1) re...

2019-10-24 10:31:46 136 0

原创 LeetCode867. Transpose Matrix(Java实现)

问题描述 Given a matrix A, return the transpose of A. The transpose of a matrix is the matrix flipped over it’s main diagonal, switching the row and col...

2019-10-24 10:30:26 54 0

原创 LeetCode34.在排序数组中查找元素的第一个和最后一个位置(java实现)

问题描述 给定一个按照升序排列的整数数组 nums,和一个目标值 target。找出给定目标值在数组中的开始位置和结束位置。 你的算法时间复杂度必须是 O(log n) 级别。 如果数组中不存在目标值,返回[-1, -1]。 解决方案 开始位置和结束位置分别用二分查找,注意边界条件即可,代码...

2019-10-23 21:20:00 52 0

原创 LeetCode74.搜索二维矩阵(java实现)

问题描述 编写一个高效的算法来判断 m x n 矩阵中,是否存在一个目标值。该矩阵具有如下特性: 1.每行中的整数从左到右按升序排列。 2.每行的第一个整数大于前一行的最后一个整数。 解决方案 把二维数组当做一维数组来看,二分查找,代码如下: public boolean searchMat...

2019-10-23 21:19:33 47 0

原创 LeetCode240.搜索二维矩阵 II(java实现)

问题描述 编写一个高效的算法来判断 m x n 矩阵中,是否存在一个目标值。该矩阵具有如下特性: 1.每行的元素从左到右升序排列。 2.每列的元素从上到下升序排列。 解决方案 从右上角开始搜索,逐步进行,代码如下: public boolean searchMatrix(int[][] ma...

2019-10-23 21:18:59 54 0

原创 LeetCode153.旋转数组的最小数字(java实现)

问题描述 假设按照升序排序的数组在预先未知的某个点上进行了旋转。 ( 例如,数组 [0,1,2,4,5,6,7] 可能变为 [4,5,6,7,0,1,2] )。 请找出其中最小的元素。 你可以假设数组中不存在重复元素。 解决方案 以数组中最后一个元素为基准,进行二分查找,代码如下: ...

2019-10-23 21:17:27 47 0

原创 LeetCode33.搜索旋转排序数组(java实现)

问题描述 假设按照升序排序的数组在预先未知的某个点上进行了旋转。 ( 例如,数组[0,1,2,4,5,6,7] 可能变为[4,5,6,7,0,1,2])。 搜索一个给定的目标值,如果数组中存在这个目标值,则返回它的索引,否则返回 -1 。 你可以假设数组中不存在重复的元素。 你的算法时间复杂度必...

2019-10-23 21:16:57 43 0

原创 LeetCode81.搜索旋转排序数组 II(java实现)

问题描述 假设按照升序排序的数组在预先未知的某个点上进行了旋转。 ( 例如,数组 [0,0,1,2,2,5,6] 可能变为 [2,5,6,0,0,1,2] )。 编写一个函数来判断给定的目标值是否存在于数组中。若存在返回 true,否则返回 false。 解决方案 如果二分中点元素的值和数组...

2019-10-23 21:16:23 37 0

原创 LeetCode 69.x 的平方根(java实现)

问题描述 实现 int sqrt(int x) 函数。 计算并返回 x 的平方根,其中 x 是非负整数。 由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去。 解决方案 注意整型值相乘溢出的问题,用除来判断。比如mid > x / mid,代码如下: public int my...

2019-10-23 21:15:41 61 0

原创 LeetCode668.乘法表中第 k 小的数(java实现)

问题描述 几乎每一个人都用 乘法表。但是你能在乘法表中快速找到第 k 小的数字吗? 给定高度 m 、宽度 n 的一张 m * n的乘法表,以及正整数 k,你需要返回表中第 k 小的数字。 解决方案 首先编写一个计算乘法表中小于等于某个整数的数的个数的函数,然后运用二分查找进行搜索,代码如下:...

2019-10-23 21:15:09 116 0

原创 求根号2的值(两种方法 java实现)

计算根号2的值,保留小数点后10位。二分查找法和牛顿迭代法

2019-10-23 16:26:11 279 0

原创 Kth Number问题的三种解法(java实现)

给定一个无序数组,找到其中第k大的数。分别用堆解法、快排变行、BFPRT算法三张解法实现,并对比分析。

2019-10-23 11:51:46 81 0

原创 求二叉树两个节点的最近公共父节点的两种方法(java实现)

二叉树两个节点的最近公共父节点的两种方法(java实现)

2019-10-20 18:08:18 274 0

原创 数组能否累加至某个数

数组能否累加至某个数. 给定一个数组arr和一个整数aim。如果可以任意选择arr中的数字,能否累加至aim,能则返回true,否则返回false。

2019-10-08 16:01:38 55 0

原创 字符数组的全排列

给定一个字符数组,打印该字符数组的全排列。

2019-10-07 15:15:34 71 0

提示
确定要删除当前文章?
取消 删除