首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
AI 模拟面试
简历
求职
学习
基础学习课
实战项目课
求职辅导课
专栏&文章
竞赛
搜索
我要招人
发布职位
发布职位、邀约牛人
更多企业解决方案
在线笔面试、雇主品牌宣传
登录
/
注册
少夜阳
获赞
1
粉丝
4
关注
2
看过 TA
21
上海交通大学
2020
Java
IP属地:未知
暂未填写个人简介
私信
关注
拉黑
举报
举报
确定要拉黑少夜阳吗?
发布(22)
评论
刷题
少夜阳
关注TA,不错过内容更新
关注
2022-03-16 12:49
上海交通大学 Java
第四范式有了解的同学吗,求问详情和薪资情况
第四范式有了解的同学吗,求问详情和薪资情况,谢谢各位了
投递第四范式等公司10个岗位 >
0
点赞
评论
收藏
分享
2022-02-22 10:35
上海交通大学 Java
NC122题解 | #正则表达式匹配#
解法 根据动态规划 设置一个dp[m+1][n+1]的布尔数组,表示str的前m个字符与pattern的前n个字符是否匹配 dp[0][0]初始化为true dp[0][]初始化: for(int i = 1; i <= n; i++){ if(pattern[i-1] == '*'){ dp[0][i] = dp[0][i-2]; } } 循环遍历匹配:由短到长 分三种情况: 1、最后一个字符相等str:aaa 与 pattern:cddda 2、最后一个字符是'.' 3、最后一...
0
点赞
评论
收藏
分享
2021-12-29 14:17
已编辑
上海交通大学 Java
NC23题解 | #划分链表#
首先题意:链表中数字小于x的值放在左边,数字大于x的值放在右边,且左半部分内部和右半部分内部相对顺序是链表的遍历顺序,保持不变 解法1:双指针 解法2:定位后分叉,分为左半部分和右半部分 解法1:双指针,需要额外两个头节点 public ListNode partition (ListNode head, int x) { // write code here if(head == null){ return head; } ListNode less = new ListNode(-101); ...
0
点赞
评论
收藏
分享
2021-12-29 10:59
已编辑
上海交通大学 Java
NC22题解 | #合并两个有序的数组#
题目默认了升序? 3种方法 解法1:System.arraycopy() 解法2:定义一个新数组C,再利用双指针,从后往前遍历 解法3:直接利用数组A,三指针,此处需要证明指针p不会覆盖指针i,即A[p]不会覆盖A[i] 解法1:System.arraycopy() public void merge(int A[], int m, int B[], int n) { System.arraycopy(B,0,A,m,n); Arrays.sort(A); } 解法2:双指针,新数组 //额外数组 public void me...
0
点赞
评论
收藏
分享
2021-12-29 09:45
已编辑
上海交通大学 Java
NC21题解 | #链表内指定区间反转#
链表翻转 需要前面增加一个节点preHead 而且返回的时候需要考虑到返回的是preHead.next,因为可能head节点也被翻转到最后了, 代码如下: import java.util.*; /* * public class ListNode { * int val; * ListNode next = null; * } */ public class Solution { /** * * @param head ListNode类 * @param m int整型 * @param n int整型 ...
0
点赞
评论
收藏
分享
2021-12-28 23:35
已编辑
上海交通大学 Java
NC20题解 | #数字字符串转化成IP地址#
这题目写了很长时间 中间好多天中断了刷题,自身毅力不够 今天年终奖发了半年的,比同事少很多,心在滴血,自己走错了路,选择小厂后,不如意,不该回到小城市 我辈独行,但行好事,要问前程,迷茫... 递归 需要判断首位 需要判断数字是否大于255和010类似数字 需要判断字符串是否为空
0
点赞
评论
收藏
分享
2021-12-22 22:59
上海交通大学 Java
NC18题解 | #连续子数组的最大和#
动态规划: 解法1:时间复杂度为O(n) 解法2:空间复杂度为O(n) 空间复杂度为O(n) public int get(int[] array){ int n = array.length; int max = array[0]; //dp[i]表示必须包含array[i]的连续数组的和 int[] dp = new int[n]; dp[0] = array[0]; for(int i = 1; i < n; i++){ dp[i] = Math.max(arr...
0
点赞
评论
收藏
分享
2021-12-22 22:31
上海交通大学 Java
NC18题解 | #顺时针旋转矩阵#
规律题 mat[i][j]->mat[j][n-1-i]位置互换
0
点赞
评论
收藏
分享
2021-12-22 22:12
上海交通大学 Java
NC17题解 | #最长回文子串#
动态规划 dp[i][j]表示从i到j是否是回文字符串 本题动态规划的难点在于数组初始化 //初始化先判断1个字符的, 2个字符的回文状态 再3 4 5...n个字符、、、 //而不是常规的,先从dp[0][0],dp[0][1],dp[0][2]... //而是 dp[0][0] dp[1][1] dp[2][2] dp[3][3] //再是 dp[0][1] dp[1][2] dp[2][3] dp[3][4] //再是 dp[0][2] dp[1][3]... 与常规i,j从0到n循环不同,本题循环是i和j的差值每轮循环在增大 for(int l = 0; l < n;...
0
点赞
评论
收藏
分享
2021-12-22 18:50
已编辑
上海交通大学 Java
NC16题解 | #对称的二叉树#
解法1:递归(成功) import java.util.*; public class Solution { boolean isSymmetrical(TreeNode pRoot) { if(pRoot == null){ return true; } return mirror(pRoot.left,pRoot.right); } public boolean mirror(TreeNode node1, TreeNode node2){ if(node1 == null &a...
0
点赞
评论
收藏
分享
2021-12-22 16:32
上海交通大学 Java
NC15题解 | #求二叉树的层序遍历#
类似NC14
0
点赞
评论
收藏
分享
2021-12-22 16:18
已编辑
上海交通大学 Java
NC14题解 | #按之字形顺序打印二叉树#
解法1:队列+flag标志位 解法2:双堆栈 解法1:队列+flag标志位 import java.util.*; /* public class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null; public TreeNode(int val) { this.val = val; } } */ public class Solution { public ArrayList<ArrayList<Integer>>...
0
点赞
评论
收藏
分享
2021-12-22 14:51
上海交通大学 Java
NC13题解 | #二叉树的最大深度#
解法1:递归dfs 解法2:队列bfs层序遍历 解法1:递归 import java.util.*; /* * public class TreeNode { * int val = 0; * TreeNode left = null; * TreeNode right = null; * } */ public class Solution { /** * * @param root TreeNode类 * @return int整型 */ public int maxDepth (TreeNode ...
0
点赞
评论
收藏
分享
2021-12-22 14:23
上海交通大学 Java
NC12题解 | #重建二叉树#
递归解决 重要的是需要传递四个参数 public class Solution{ public TreeNode reConstructBinaryTree(int[] pre, int[] in) { if (pre == null || in == null || pre.length == 0 || in.length == 0 || pre.length != in.length) { return null; } return construct(pre, in, 0, pre.length, 0, in.le...
0
点赞
评论
收藏
分享
2021-12-21 08:44
已编辑
上海交通大学 Java
NC10题解 | #大数乘法#
参考了前面楼层的 346:对应数组[3,4,6] s 25: 对应数组[2,5] t res[] = new int[5] = [0,0,0,0,0] 0,1,2,3,4 res[i+j+1] = s[i]*t[j] 比如: res[4] = s[2]*t[1] = 6*5=30 res[3] = s[2]*t[0] +s[1]*t[1] = 6*2+4*5=32 依次类推... 代码: import java.util.*; public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 ...
0
点赞
评论
收藏
分享
1
2
关注他的用户也关注了:
牛客网
牛客企业服务