- 博客(15)
- 收藏
- 关注
原创 丑数
通俗易懂的解释: 首先从丑数的定义我们知道,一个丑数的因子只有2,3,5,那么丑数p = 2 ^ x * 3 ^ y * 5 ^ z,换句话说一个丑数一定由另一个丑数乘以2或者乘以3或者乘以5得到,那么我们从1开始乘以2,3,5,就得到2,3,5三个丑数,在从这三个丑数出发乘以2,3,5就得到4,6,10,6,9,15,10,15,25九个丑数,我们发现这种方法会得到重复的丑数,而且我们题目要求第...
2019-07-18 21:38:55
80
原创 Java正则表达式匹配
题目描述 请实现一个函数用来匹配包括’.‘和’‘的正则表达式。模式中的字符’.‘表示任意一个字符,而’'表示它前面的字符可以出现任意次(包含0次)。 在本题中,匹配是指字符串的所有字符匹配整个模式。例如,字符串"aaa"与模式"a.a"和"abaca"匹配,但是与"aa.a"和"ab*a"均不匹配 public class Solution { public boolean match(c...
2019-07-16 21:19:16
153
原创 Java打印从1到最大的n位数(考虑大数问题)
1字符串上模拟数字加法 public static void Print1ToMaxOfDigit(int n){ //初始化字符数组 char []ch=new char[n]; for(int i=0;i<n;i++){ ch[i]='0'; } //每位上的递增停止 ...
2019-07-16 17:29:27
690
原创 数值的整数次方
数值的整数次方 题目描述 给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。不用考虑大数问题。 `public class Solution { public double Power(double base, int exponent) { double x=1; if(exponent==0){...
2019-07-01 19:47:29
69
原创 旋转数组的最小数字
旋转数组的最小数字 题目描述 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非减排序的数组的一个旋转,输出旋转数组的最小元素。 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。 NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。 把原数组分为两个数组,最小值必定是两个数组交界处。用二分法提高效率。时间复杂度O(log n...
2019-07-01 17:13:16
70
原创 用两个栈实现队列
用两个栈实现队列 题目描述 用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。 import java.util.Stack; import java.util.NoSuchElementException; public class Solution { Stack<Integer> stack1 = new Stack<Intege...
2019-07-01 17:08:22
110
原创 斐波那契数列
题目描述 大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0)。n<=39 时间复杂度O(n) public class Solution { public int Fibonacci(int n) { int[] result = { 0, 1 }; if (n < 2) { ...
2019-01-17 18:59:42
84
原创 三种遍历下,二叉树的下一个结点
题目描述 给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回。注意,树中的结点不仅包含左右子结点,同时包含指向父结点的指针。 /* * 中序遍历 思路: * (1) 若该节点存在右子树:则下一个节点为右子树最左子节点(如图节点 B ) * (2) 若该节点不存在右子树:这时分两种情况: * 2.1 该节点为父节点的左子节点,则下一个节点为其父节点(如图节点...
2019-01-17 10:46:20
144
原创 已知前序和中序,重建二叉树
题目描述 输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。 public class Solution { public TreeNode reConstructBinaryTree(int [] pre...
2019-01-16 21:45:58
142
原创 从尾到头打印链表
题目描述 输入一个链表,按链表值从尾到头的顺序返回一个ArrayList。 思路一:调用栈 import java.util.ArrayList; import java.util.Stack; public class Solution { public ArrayList<Integer> printListFromTailToHead(ListNode listNode)...
2019-01-16 19:43:50
78
1
原创 442. Find All Duplicates in an Array
1.根据题目要求:给的验证数组最多出现两次相同的数,或者出现一次某个数,要求不开辟空间,时间复杂度是O(n).因为数组输入的特点 1&lt;=sums[i]&lt;=n,则可以把原数组当hash表用 ,因为原数组是正数,标为负数表示出现过,如果遇到负数 就表示第二次出现,就可以找出所有出现过2次的数 class Solution { public List&lt;Integer&gt; f...
2019-01-15 16:59:09
89
原创 LeetCode80. Remove Duplicates from Sorted Array II
class Solution { public int removeDuplicates(int[] nums) { //第一种方法 if(nums.length<3){ return nums.length; } int count=1; int pre=0,cur=1; ...
2019-01-15 11:39:28
60
原创 字符串-替换
字符串 C/C++中字符串以‘\0’结尾,容易发生越界。常量字符串放在特定区域,当几个指针赋值给相同的字符串常量时,它们指向相同的地址。 char str1[]=“hello”; char str2[]=“hello”; str != str2因为这是两个初始地址不同的数组 char *str3 =“hello”; char *str4 =“hello”; str3==str4 ...
2018-12-13 20:32:48
358
1
原创 二位数组中的查找
题目描述 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 思路: 1.效率最低–一个一个查 时间复杂度O(n的平方),空间复杂度O(1) public class Solution { public boolean Find(int x,int ...
2018-12-11 19:07:38
68
原创 数组中重复的数
zds 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。 ...
2018-12-06 10:02:08
184
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人