首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
AI 模拟面试
简历
求职
学习
基础学习课
实战项目课
求职辅导课
专栏&文章
竞赛
搜索
我要招人
发布职位
发布职位、邀约牛人
更多企业解决方案
在线笔面试、雇主品牌宣传
登录
/
注册
1666
获赞
99
粉丝
0
关注
11
看过 TA
53
门头沟学院
2024
大数据开发工程师
IP属地:广东
暂未填写个人简介
私信
关注
拉黑
举报
举报
确定要拉黑1666吗?
发布(9)
评论
刷题
1666
关注TA,不错过内容更新
关注
2021-04-01 23:56
门头沟学院 大数据开发工程师
矩阵中的路径-DFS(利用递归特性实现DFS的回溯)
public boolean hasPath (char[][] matrix, String word) { int rows = matrix.length; if (rows == 0) return false; int cols = matrix[0].length; boolean[][] visited = new boolean[rows][cols];//标识每个方格是否在路径里面,防止路径进入重复的方格里 for (int i = 0; i < rows; i++) { for (int j = 0; j <...
0
点赞
评论
收藏
分享
2021-03-30 17:17
门头沟学院 大数据开发工程师
把数组排成最小的数-快排(重写比较方法)(O(nlogn),O(1))
/*快排(重写比较方法)(O(nlogn),O(1)) 快排思想: 1.先从队尾开始向前扫描且当low < high时,如果a[high] > pivot,则high–,但如果a[high] < pivot, 则将high的值赋值给low,即arr[low] = a[high],同时要转换数组扫描的方式,即需要从队首开始向队尾进行扫描了 2.同理,当从队首开始向队尾进行扫描时,如果a[low] < pivot,则low++,但如果a[low] > pivot了, 则就需要将low位置的值赋值给high位置,即arr[low] = arr[hig...
0
点赞
评论
收藏
分享
2021-03-30 16:59
已编辑
门头沟学院 大数据开发工程师
表示数值的字符串-过测试用例答案:4行代码调用java源码解答
public static boolean isNumeric(String str) { try { Integer.valueOf(str); return true; }catch (NumberFormatException e1){ return false; } }
0
点赞
评论
收藏
分享
2021-03-27 17:00
门头沟学院 大数据开发工程师
调整数组顺序使奇数位于偶数前面-(O(n),O(n))
//解题思路 /*(O(n),O(n)) 遍历两次数组,第一次只添加奇数到新数组里,第二次只添加奇数到新数组里 */ public int[] reOrderArray (int[] array) { int index = 0; int[] res = new int[array.length]; for (int i : array) { if (i % 2 != 0) { res[index] = i; index++; } } for (int i : array...
0
点赞
评论
收藏
分享
2021-03-26 23:06
门头沟学院 大数据开发工程师
数组中重复的数字-替换法(O(n),O(1))
//解题思路 /*替换法(O(n),O(1)) 数组存放原则:numbers[i] = i 遍历数组所有元素,交换不符合数组存放原则的元素: 例如[2,3,1,0,2] 遍历0位元素2:(交换0位元素2和2位元素1)->[1,3,2,0,2] 遍历0位元素1:(交换0位元素1和1位元素3)->[3,1,2,0,2] 遍历0位元素3:(交换0位元素3和3位元素0)->[0,1,2,3,2] 依次遍历0、1、2、3位置元素,都符合存放原则numbers[i] = i,不做任何操作 遍历末位元素2,此时末位元素2和2位元素2相等,出现...
wchs:
方法不错但是使用条件严格,必须是n-1数组。 i--这操作导致时间复杂度应该比O(n)大 例:2,3,4,5,6,7,8,9,1,1 这样每个元素都起码执行了n-1次,n-2,n-3 复杂度最坏应该是n^2
0
点赞
评论
收藏
分享
2021-03-21 00:56
门头沟学院 大数据开发工程师
按之字形顺序打印二叉树-使用两个栈BFS(O(n),O(n))
//解题思路 /* BFS(O(n),O(n)): 需要使用两个栈(打印层和待打印层要放在独立的两个栈里) 8 6 10 5 7 9 11 具体可看代码注释,同时使用以上二叉树进行演算即可明白 */ //popStack;打印节点栈 //saveStack:保存待打印层节点栈 //direction:打印方向,true为正向(使用saveStack保存待打印层节点时要先添加左孩子,再添加右孩子),false为反向(要先添加右孩子,再添加左孩子) private ArrayList<Integer> print(Stack<TreeNod...
0
点赞
评论
收藏
分享
2021-03-19 22:07
门头沟学院 大数据开发工程师
二叉树的下一个结点-根据中序遍历的特点(O(n),O(1))解题
//解题思路 /* 8 6 10 5 7 9 11 根据中序遍历的特点(O(n),O(1)): 1.pNode的右孩子为空,中序遍历顺序的下一个结点可能在其父辈root里(注意是父辈,不只是父亲) 1.1 pNode为root的左孩子,则pNode的下一个结点为root(例如5、7、9) 1.2 否则返回null(例如11) 2.pNode的右孩子不为空时,中序遍历顺序的下一个结点在其右子树里,此时中序遍历右子树取第一个结果即可(例如6、8、10) */ //犯错点 /* 求中序遍历右子树取第一个结果即取右子树最左边的节点,不用调用i...
0
点赞
评论
收藏
分享
2021-03-18 18:04
门头沟学院 大数据开发工程师
表示数值的字符串-考虑出现.+-eE的限制条件
public boolean isNumeric (String str) { char[] chars = str.toCharArray(); boolean point = false;//表示小数点是否已存在 boolean e = false;//表示e是否已存在 boolean lOperator = false;//表示e左边运算符是否已存在 boolean rOperator = false;//表示e右边运算符是否已存在 int len = chars.length; int eIndex = len;//e出现的位置 ...
0
点赞
评论
收藏
分享
2021-03-16 17:35
门头沟学院 大数据开发工程师
扑克牌顺子-不用排序,只需要boolean[5]很小的内存空间,遍历一次数组即可
//解题思路 /* array数组解释:数组索引表示顺子的第几张牌,如array[1] = true表示顺子的第二张牌找到了 遍历所有数字: 1.数字为0则king++,如果king > 3直接返回true,因为有4或5个王一定能组成顺子 2.数字不为0 2.1先执行array[number % 5] == true,判断这张牌是否已经找到了或两张牌是否相差5 2.1.1是则直接返回false,因为有重复的牌或者存在两张相差5的牌都不可能组成顺子 2.1.2否则执行array[number % 5] = true表示找到了顺子的其中一张牌,缺牌数l...
0
点赞
评论
收藏
分享
1
关注他的用户也关注了:
牛客网
牛客企业服务