首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
AI 模拟面试
简历
求职
学习
课程
专栏·文章
竞赛
搜索
我要招人
发布职位
发布职位、邀约牛人
更多企业解决方案
在线笔面试、雇主品牌宣传
登录
/
注册
ZhangHao0810
获赞
55
粉丝
6
关注
5
看过 TA
15
男
北京信息科技大学
2022
Java
IP属地:山东
如人饮水,冷暖自知。
私信
关注
拉黑
举报
举报
确定要拉黑ZhangHao0810吗?
发布(51)
刷题
ZhangHao0810
2021-07-17 15:19
已编辑
Java
题解 | #JZ18二叉树的镜像# [ 树,栈,队列 ]三重知识点回顾
本质是二叉树的遍历 我的做法是:递归 从孩子开始, 换孩子,再往上走,直到换到根的两个孩子。等做完之后看题解才后知后觉的明白我的遍历是后序遍历。 public TreeNode Mirror (TreeNode pRoot) { if(pRoot==null) return pRoot; TreeNode left = Mirror(pRoot.left); TreeNode right = Mirror(pRoot.right); pRoot.right=left; pRoot.left=right;...
0
点赞
评论
收藏
转发
ZhangHao0810
2021-07-17 14:30
Java
题解 | #ZJ17树的子结构#
树结构,递归思想。 思考了一下,看完题解之后思路清晰地完整给出了解答。但又遇到了空指针异常,一定要注意分析链表,树节点的最后null的情况。 public boolean HasSubtree(TreeNode root1,TreeNode root2) { if(root1==null||root2==null) return false; boolean result=false; if(root1.val==root2.val){ result = HashSubtreeHelper(root1,root2)...
0
点赞
评论
收藏
转发
ZhangHao0810
2021-07-17 10:53
Java
题解 | #ZJ16合并两个排序的链表#
链表的操作是一般要设置一个前驱。 引用是要指向一个类型对象,不然会报NullPointException不能声明一个引用是什么类型,这个引用就能当这个类型的对象来用了,基本的逻辑。 /* public class ListNode { int val; ListNode next = null; ListNode(int val) { this.val = val; } }*/ public class Solution { public ListNode Merge(ListNode list1,ListNode list2) { ...
0
点赞
评论
收藏
转发
ZhangHao0810
2021-07-17 10:30
Java
题解 | #JZ15反转链表#
记住,翻转链表用三指针。 pre 是链外元素。(返回链的链首)cru 是当前链首。nex 是当前链2. { public ListNode ReverseList(ListNode head) { ListNode pre=null; ListNode cru = head; ListNode nex =null; while(cru!=null){ nex=cru.next; cru.next = pre; pre=cru; ...
0
点赞
评论
收藏
转发
ZhangHao0810
2021-07-16 22:31
已编辑
Java
面经 | #字节 三面面经 不能放弃一切机会。
经过这周的高压准备,连着三天的面试,终于过了字节技术三面,获得口头的意向书(希望快点发给我啊),现回馈牛客分享一下自己的面经以及面试体验,许愿意向书早点发别出什么幺蛾子了。一面面经时间:2021.7.13,时长:60min面试流程:自我介绍-算法-八股文1.首先是自我介绍,巴拉巴拉说了一通2.自我介绍完就直接出了算法题,我还以为会问一下项目的东西,没想到上来就先写题,写完题再说。题目是面试官口述的:求根号2的值。刚开始面试官就真的只说了这个要求,之后慢慢和面试官沟通后,指出需要自己定义误差,要求实现的函数可以通过调整误差来达到指定的精度3.数据库设计题:场景是学校的选课系统,有课程、老师以及学...
0
点赞
评论
收藏
转发
ZhangHao0810
2021-07-16 12:19
Java
题解 | #JZ13调整数组顺序使奇数位于偶数前面#
要注意时间复杂度问题,用排序算法不见得好,因为时间复杂度高。 而暴力解法,或者说用集合来操纵数组,即使为了输出要遍历第二次list,时间复杂度也是O(n) 可以先定位偶数的个数,找到返回数组的偶数的第一个位置, 再遍历一遍即可。 可以用集合类,拼接,但是返回值 list.toArray 是Object类型的。 关于集合转数组, 网上说的用 toArray(T a) 的方式, String[] arr = new String[list.size]; list.toArray(arr); String[] sids = sList.toArray(new String[sList.si...
0
点赞
评论
收藏
转发
ZhangHao0810
2021-07-16 11:01
Java
题解 | #JZ12数值的整数次方#
代码写出来要优雅 某些涉及高深位运算之类的解法,不好理解,时间有限,写一个优雅的暴力解法更好。 2^-2 = (1/2)^2 不要习惯性的去用很多的if-else 堆积!!! 将代码提炼,简洁化。 public double Power(double base, int exponent) { double res=1.0; if(exponent<0) { base=1/base; exponent=-exponent; } for(int i=0;i<expo...
0
点赞
评论
收藏
转发
ZhangHao0810
2021-07-16 10:42
Java
题解 | #JZ11二进制中1的个数#
输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示 如果一个整数不为0,那么这个整数至少有一位是1。如果我们把这个整数减1,那么原来处在整数最右边的1就会变为0,原来在1后面的所有的0都会变成1(如果最右边的1后面还有0的话)。其余所有位将不会受到影响。 举个例子:一个二进制数1100,从右边数起第三位是处于最右边的一个1。减去1后,第三位变成0,它后面的两位0变成了1,而前面的1保持不变,因此得到的结果是1011.我们发现减1的结果是把最右边的一个1开始的所有位都取反了。这个时候如果我们再把原来的整数和减去1之后的结果做与运算,从原来整数最右边一个1那一位开始所有位都会变成0。如...
0
点赞
评论
收藏
转发
ZhangHao0810
2021-07-16 07:43
已编辑
Java
面经 |#百度 提前批一面
JVM中锁的关键字 JVM内存模型 类的生命周期和类加载 给对象开辟内存空间后,将相应的地址赋值给引用,有几种方式 jvm类加载 Synchronized的锁升级 轻量级锁和偏向锁的区别 锁升级过程 Synchronized加锁的类型,类锁和对象锁 Synchronized的锁类型,独占锁,可重入锁等 Synchronized经历过怎样的优化........ Java的Exception Spring的IOC什么是IOC好处 Mybatis,Jdbc,Hibernate之间的区别a. 给jdbc封装了哪些功能b. Mybatis原理c. Mybatis如何实例化对象过程????? MyIsam...
0
点赞
评论
收藏
转发
ZhangHao0810
2021-07-15 23:50
已编辑
Java
题解 | #JZ10矩形覆盖#
FeiBo永远的神。青蛙跳台永远的神。 见得多了,就能总结出这一类题目的解法。 使用动态规划:递推优化要先分析题目,找到其中的一些规律。 public int rectCover(int target) { if(target<=3) return target; int sum=3; int p=2; for(int i=4;i<=target;i++){ sum=sum+p; p=sum-p; } return sum; ...
0
点赞
评论
收藏
转发
ZhangHao0810
2021-07-15 21:18
Java
题解 | #JZ9跳台阶扩展问题#
要勇敢的递推试一下,数学关系要搞明白,算法其实就是考察数学。 递推式子: 1(1),2(1+1),4(1+2+1),8(1+2+4+1),16(1+2+4+8+1) public int jumpFloorII(int target) { if (target == 0 || target == 1) return 1; return (int) Math.pow(2,target-1); }注意Math包的一些常用类。 import java.lang.Math; double r= Math.pow(double a, double b) a的b...
0
点赞
评论
收藏
转发
ZhangHao0810
2021-07-15 20:47
Java
2021-07-15
在牛客打卡17天,今天也很努力鸭!
每日监督打卡
0
点赞
评论
收藏
转发
ZhangHao0810
2021-07-13 14:26
已编辑
Java
题解 | #JZ8跳台阶#
本题的本质就是就是Fibo数列,只是初始值不一样。 更多详细见 : 题解 #JZ7斐波那契数列。 使用递推去解。 一定要有举一反三的能力! 将学到的知识应用到新题型上面! 面试用这个: public class Solution { public int jumpFloor(int target) { int a=1,b=1; for(int i=2;i<=target;++i){ a=a+b; b=a-b; } return a; } }
0
点赞
评论
收藏
转发
ZhangHao0810
2021-07-13 14:12
Java
题解 | #JZ7斐波那契数列#
同样的类型的题还有兔子繁殖的问题。此题可以用丰富的解法来解答。考察知识:[递归],[记忆化搜索],[动态规划], [递推]。难度:一星 1 分治 分治思想简述 当一个问题规模较大且不易求解的时候,就可以考虑将问题分成几个小的模块,再逐一解决; 分治思想一般都会和递归一起使用,因为采用分治思想处理问题,其各个小模块通常具有与大问题相同的结构,这种特性也使递归技术有了用武之地。 所以,分治是一种思想,递归是一种技术! 1.1 分治 | 递归 大量重复计算,超时! 迭代 和 递归 对比两种实现方式,迭代和递归的区别是:迭代使用的是循环结构,递归使用的是选择结构; 使用递归能使程序的结构...
0
点赞
评论
收藏
转发
ZhangHao0810
2021-07-13 13:24
Java
题解 | #JZ6旋转数组的最小数字#
考察特殊的 二分查找 题干中有一个概念没有理解,导致想不明白题意:非递减数组, 意思是:数组中没有任何部分是递减的! 122344 非递减数组的旋转,就是将后边一部分元素挪到了前面,导致原本处在第一位的最小元素去到中间了。题目要找到并输出这个最小元素。查找元素嘛, 二分查找法适用。 但是最小元素不知道,没有一个 target 去和 mid元素比。其实也是可以做的,将某个端点值设为target即可。而这个端点值不能随便选,一般选后面的。 可以在纸上做一下演草。 情况1 :1 2 3 4 5 , arr[mid] = 3. target = 1, arr[mid] > target, 答...
0
点赞
评论
收藏
转发
1
2
3
4
工具箱
TA的圈子
暂未加入圈子
TA的圈子
TA的笔记
暂无笔记
TA的笔记
登录
0
天
已登录
0
天
连续登录
0
人
今日访客
牛客网
牛客企业服务