LaN666
LaN666
全部文章
题解
归档
标签
去牛客网
登录
/
注册
LaN666的博客
梅花香自苦寒来~
全部文章
/ 题解
(共102篇)
和为S的两个数字
来自专栏
直接使用双指针,只是题目多加了一个限定,输出乘积最小的那一组。 public ArrayList<Integer> FindNumbersWithSum(int [] array,int sum) { int l = 0, r = array.length-1; ...
双指针
2021-01-30
2
941
和为S的连续正数序列
来自专栏
思路:输入sum=201,定义两个指针,左指针从1开始,右指针从2开始循环开始2,求和 1+2 = 33,如果判断3小于20,右指针++,2变为3,求和3+3=6。循环一直到右指针=6,和为21。4,else if 判断21大于20,左指针++,1变为2,和减去左指针值,和为21-1=20。5,el...
穷举
2021-01-30
2
839
丑数
来自专栏
把只包含质因子2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因为它包含质因子7。 习惯上我们把1当做是第一个丑数。有了上面的定义我们就可以知道,丑数的形式就是所以我们可以定义一个数组,存储第n个丑数。因为我们要将丑数按从小到大的顺序排序,所以我们就得将对应的丑数放...
数学
2021-01-30
4
898
把数组排成最小的数
来自专栏
这道题目可以看成是一道排序的题目,因为要使得结果最小,那么给出的整数要怎么排列呢?其实就可以转化为 A+B 与 B+A 之间比较的问题,当A+B小于B+A的时候,很明显A要放在B的前面,这样才能使得结果小。所以我们可以利用sort函数进行排序。 public String PrintMinNumbe...
排序
2021-01-30
3
860
二叉搜索树与双向链表
来自专栏
要将二叉搜索树转化为一个排序的双向链表,而且要求不能创建任何新的结点,只能调整树中结点指针的指向。所以我们可以利用二叉树的left和right,用left代替常规双向链表的前一个指针,right代表next。因为是二叉搜索树,所以我们就必须用到中序遍历,因为中序遍历出来的数就是从小到大的数,但是我们...
中序遍历
双向链表
2021-01-29
2
564
复杂链表的复制
来自专栏
浅拷贝就是两者共用一份内存地址,一个改变,另外一个跟着改变;深拷贝就是两者的内存地址是不一样的,互相独立的。那么我们要怎么进行深拷贝呢? 肯定不可以直接将节点赋值给新的节点,这样就是引用了。所以我想到的是新建节点,然后新节点的值跟原来的节点的一样。但是要怎么存储呢?因为我们深拷贝的新的链表,每一个...
链表
哈希表
深拷贝
2021-01-29
10
978
二叉树中和为某一值的路径
来自专栏
从根节点到叶子节点才算是一条路径,叶子节点的左右节点都为空。所以这道题的解决方式可以使用回溯算法 public class Solution { ArrayList<Integer> list = new ArrayList<>(); ArrayList<...
递归
深度遍历
二叉树
回溯
2021-01-29
1
620
二叉搜索树的后序遍历序列
来自专栏
二叉树的后续遍历:先访问左节点,再访问右节点,最后访问根节点所以一个后续遍历的数组,最后一位肯定是二叉树的根节点 何为二叉搜索树:左节点必定小于根节点,右节点必定小于根节点;左子树和右子树也是二叉搜索树 所以思路就来了:我们可以直接拿到二叉树的根节点,然后找到其左子树的所有节点和右子树的所有节点,...
递归
二叉搜索树
后续遍历
2021-01-28
1
647
栈的压入、弹出序列
来自专栏
题目思路:使用一个栈来进行入栈,然后当栈不为空则开始跟popA数组进行比较,若相等则将该元素弹出栈最后看栈是否为空,如果为空则证明popA是pushA的出栈数组。 public boolean IsPopOrder(int [] pushA,int [] popA) { if(pu...
栈
数组
2021-01-28
3
791
调整数组顺序使奇数位于偶数前面
来自专栏
先算出奇数的个数,然后再分数组中的位置进行重新填充(需要克隆一个新数组) public void reOrderArray(int [] array) { if(array.length <= 1) return; int cnt = 0...
数组
2021-01-28
1
548
首页
上一页
2
3
4
5
6
7
8
9
10
11
下一页
末页