OfferCall!
OfferCall!
全部文章
题解
Java(1)
刷题笔记(1)
归档
标签
去牛客网
登录
/
注册
OfferCall!的博客
保持专注,持续学习。
全部文章
/ 题解
(共52篇)
动态规划
public int JumpFloor(int target) { if (target <= 2){ return target; } int pre_1 = 2; int pre_2 = 1; ...
2021-04-07
0
470
尾部0的数量取决于因子5的数量
能够在尾部得出0,是由于存在局部的2*5,而在阶乘中,能够提取的2的数量一定大于5的数量,所以尾部0的数量取决于能够提取出多少个因子5,那么从1到n能提取出多少个5呢?这里有一个公式: 对于一个数N,它所包含5的个数为:N/5 + N/ + N/ + ...,其中N/5表示不大于N的数中5...
2021-04-06
1
656
回溯法寻找组合
常见的使用DFS+回溯求解组合问题 private ArrayList<ArrayList<Integer>> list = new ArrayList<>(); public ArrayList<ArrayList<Integer&g...
2021-04-05
0
601
二分查找
由于给定的二维数组具备每行从左到右递增以及每列从上到下递增的特点,当访问到一个元素时,可以排除数组中的部分元素。我们可以从矩阵的右上角元素开始进行查询,如果其等于目标元素则直接返回结果;如果其大于目标元素,则只能往列坐标减少的方向去寻找,其他位置的元素都是大于当前访问的元素的,自然也就大于目标元素;...
2021-04-05
2
841
后序遍历
求一棵二叉树的最大路径和,可以从二叉树的任意节点出发然后到二叉树的任意节点结束,其实本质就是求以二叉树的某个节点为根节点出发,求其本身与其左右子树构成的最大路径和,这种可能有: 1、其本身构成了最大值 2、其本身与其左右子树构成了最大值 3、其本身与其左子树或者右子树构成了最大值所...
2021-04-05
1
657
借助数组和进位变量
借助数组,数组长度设置为二者相乘之后可能产生的最长的位数,即二者位数之和。然后按照乘法规则,逐个位置相乘,求出保留数和进位。一次整体的内循环过程就是求一个中间结果的过程,外循环遍历完,则所有的中间结果也就求完了。最终还需要判断最后的进位变量是否不为0,如果不为0,需要添加到最高位。 publ...
2021-04-01
2
992
移位运算或n&(n-1)
方法一:移位运算对于整数,采用算数右移;对于负数,采用无符号右移这两种情况的右移,都能保证移动后,高位补0,不会影响最终的计算 public int NumberOf1(int n) { int num = 0; if (n > 0){ ...
2021-04-01
0
490
回溯法
为了防止出现右括号在左括号前面的情况发生,每次递归一定要先考虑左括号,当左括号的情况考虑完了,再考虑右括号,而且要保证每次递归时已有的右括号的数量不能大于左括号的数量,否则也会造成交叉。 public ArrayList<String> generateParenthesis (int...
2021-04-01
2
839
DFS+回溯
将字符串划分成ip地址,需要注意几点:1、ip地址由四个整数组成;2、每个整数的范围是[0,255];3、四个整数通过逗号分隔符连接4、每个整数除了它本身是0的情况之外,不能以0开头我主要采用深度优先搜索+回溯的方法解决 对每一部分的整数的处理方式都是一样的,先取一位数,然后添加到临时要划分的ip字...
2021-04-01
3
908
坐标变换
public int[][] rotateMatrix(int[][] mat, int n) { // write code here if (mat == null){ return null; } if...
2021-03-31
1
574
首页
上一页
1
2
3
4
5
6
下一页
末页