首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
AI 模拟面试
简历
求职
学习
课程
专栏·文章
竞赛
搜索
我要招人
发布职位
发布职位、邀约牛人
更多企业解决方案
在线笔面试、雇主品牌宣传
登录
/
注册
不想看论文
获赞
318
粉丝
8
关注
4
看过 TA
73
男
中国科学院大学
2024
Java
IP属地:浙江
暂未填写个人简介
私信
关注
拉黑
举报
举报
确定要拉黑不想看论文吗?
发布(30)
刷题
不想看论文
2022-04-30 11:22
已编辑
中国科学院大学 计算机类
题解 | #java版——设计LRU缓存结构#
方法一在leetcode上是可以通过的,在牛客通过不了,可以学习下。 方法一:利用LinkedHashMap public class Solution extends LinkedHashMap<Integer, Integer>{ private int capacity; public Solution(int capacity) { // accessOrder默认为false表示按插入顺序排序,为true表示按访问顺序排序 // LRU自然是按访问顺序,所以让accessOrder=true ...
0
点赞
评论
收藏
转发
不想看论文
2022-04-28 09:38
中国科学院大学 计算机类
题解 | #盛水最多的容器#
java版——双指针 容量是由最小的那个边决定的,即 area = min(height[legt], height[right]) * (right - left) 然后我们每次移动较小的边,比如, height[left] < height[right] ,那我们就让 left++ 。 为什么呢? 因为如果我们移动较大的边,那么移动后得到的容量一定会比现在小。即使较大边移动后遇到更大的边,但是容量是由较小边决定的,即容器的高度还是 height[left] ,但是宽度却变小了。所以移动较大边必不可能得到一个更大的容器,而移动较小边是有可能得到一个更大的容器的。 public ...
0
点赞
评论
收藏
转发
不想看论文
2022-04-28 08:44
中国科学院大学 计算机类
题解 | #最长无重复子数组#
java版——双指针 public class Solution { public int maxLength (int[] arr) { Set<Integer> set = new HashSet<>(); int left = 0; int right = 0; int maxLen = -1; while(right < arr.length){ // 扩大右指针,直到遇到重复元素 while(right < ...
0
点赞
评论
收藏
转发
不想看论文
2022-04-27 10:56
中国科学院大学 计算机类
题解 | #大数加法#
java版 public class Solution { public String solve (String s, String t) { int i = s.length() - 1; int j = t.length() - 1; int curr = 0; int carry = 0; StringBuffer sb = new StringBuffer(); while(i >= 0 && j >= 0){ int a ...
0
点赞
评论
收藏
转发
不想看论文
2022-04-27 10:23
中国科学院大学 计算机类
题解 | #验证IP地址#
java版 public class Solution { public String solve (String IP) { if(isIPv4(IP)){ return "IPv4"; }else if(isIPv6(IP)){ return "IPv6"; }else{ return "Neither"; } } private boolean isIPv4(String IP){ String[]...
0
点赞
评论
收藏
转发
不想看论文
2022-04-12 12:28
已编辑
中国科学院大学 计算机类
题解 | #买卖股票的最好时机(二)#
dp[i][0] 表示第 i 天不持有股票,此时可以获得的最大利益, dp[i][1] 表示第 i 天持有股票,此时可以获得的最大利益。那么 dp[i][0] 的值可以来源于 dp[i - 1][0] ,即今天什么也没干,直接继承昨天的状态。或 dp[i - 1][1] + prices[i] ,即昨天持有股票,今天把股票卖了。两者的最大值即为 dp[i][0] 的值。 dp[i][0] = max(dp[i - 1][0], dp[i - 1][1] + prices[i]); dp[i][1] 的值可以来源于 dp[i - 1][1] ,即今天什么也没干,直接继承昨天的状态。或 dp[...
0
点赞
评论
收藏
转发
不想看论文
2023-02-20 11:07
已编辑
中国科学院大学 计算机类
题解 | #编辑距离(一)#
java版——动态规划 dp[i][j] 表示 str1 的前 i 个字符和 str2 的前 j 个字符的编辑距离。 (以下说的相等是指我们已经知道它们的编辑距离) 如果 str1 的前 i - 1 个字符和 str2 的前 j 个字符相等,那么我们只需要在 str1 最后删除一个字符就可以转化为 str2 。 dp[i][j] = dp[i - 1][j] + 1 如果 str1 的前 i 个字符和 str2 的前 j - 1 个字符相等,那么我们只需要在 str1 最后插入一个字符就可以转化为 str2 。 dp[i][j] = dp[i][j - 1] + 1 如果 str1 的前 ...
0
点赞
评论
收藏
转发
不想看论文
2022-04-08 09:12
中国科学院大学 计算机类
题解 | #数字字符串转化成IP地址#
java版——回溯 常规版回溯,通俗易懂 public class Solution { ArrayList<String> res = new ArrayList<>(); // 存放结果集 ArrayList<String> ipset = new ArrayList<>(); // 存放每一种合法的ip子集 public ArrayList<String> restoreIpAddresses (String s) { int len = s.length(); if...
0
点赞
评论
收藏
转发
不想看论文
2022-04-06 09:18
中国科学院大学 计算机类
题解 | #最长公共子序列(二)#
public class Solution { public String LCS (String s1, String s2) { int len1 = s1.length(); int len2 = s2.length(); // dp[i][j]记录s1长度为i,s2长度为j的最长公共子序列长度 int[][] dp = new int[len1 + 1][len2 + 1]; for(int i = 1; i <= len1; i++){ for(int j = 1;...
0
点赞
评论
收藏
转发
不想看论文
2022-07-26 00:20
已编辑
中国科学院大学 计算机类
题解 | #缺失的第一个正整数#
理想情况下每个元素都在自己的位置上,如下: 现在将元素对应位置打乱,并且缺失了一个元素,如下: 那么怎么找到这个缺失元素呢?我们可以依次遍历数组 nums ,每遍历到一个元素,比如 nums[i] ,就将 nums[i] 的值对应的位置做上标记,表示这个位置上的主人出现过,只是现在不在这个位置。遍历结束后,如果某个位置上没有被标记,说明这个位置上的主人缺失了。 ` nums[1] = 3,将3这个位置做标记。 nums[2] = 1,将1这个位置做标记。 nums[3] = 5,将5这个位置做标记。 nums[4] = 1,将1这个位置做标记。 nums[5] = 6,将6这个...
0
点赞
评论
收藏
转发
不想看论文
2022-04-03 16:28
中国科学院大学 计算机类
题解 | #表达式求值#
两个栈 st1 和 st2,一个用来存操作数 (st1) ,一个用来存运算符和左括号 (st2)。 当遇到 '(' 就入 st2 栈。 当遇到操作数就如 st1 栈。 当遇到操作符,有两种情况 3.1 如果这个操作符优先级小于等于 st2 栈顶操作符的优先级,则从 st1 中出栈两个操作数,从 st2 中出栈一个操作符,并做运算,将运算结果放入 st1 栈中。 3.2 如果这个操作符优先级大于 st2 栈顶操作符的优先级,则直接入栈。 当遇到 ')' ,每次出栈两个操作数和一个操作符,并将运算结果存入 st1 中,直到 st2 栈顶为 '(' ,并将这个 '(' 出栈。 public ...
0
点赞
评论
收藏
转发
不想看论文
2022-04-03 14:18
已编辑
中国科学院大学 计算机类
题解 | #寻找第K大#
java版 方法一:快排 很多人用快排最后一个用例会超时,解决方法是,随机的选取枢轴pivot。 public class Solution { public int findKth(int[] a, int n, int K) { // write code here return quickSort(a, 0, n - 1, K); } private int quickSort(int[] nums, int low, int high, int target) { int i = low, j = hi...
0
点赞
评论
收藏
转发
不想看论文
2022-04-03 10:49
中国科学院大学 计算机类
题解 | #滑动窗口的最大值#
单调队列——java版 https://liyanzu0926.github.io/2022/03/13/page-4/ public class Solution { public ArrayList<Integer> maxInWindows(int [] num, int size) { Deque<Integer> queue = new LinkedList<>(); ArrayList<Integer> res = new ArrayList<>(); // 初始窗口...
0
点赞
评论
收藏
转发
不想看论文
2022-04-03 09:24
中国科学院大学 计算机类
题解 | #输出二叉树的右视图#
通过前序和中序构建二叉树同上一题。 求二叉树的右视图可以用层次遍历,找到每一层的最后一个结点并把它并入结果集。 public class Solution { public int[] solve (int[] xianxu, int[] zhongxu) { // write code here TreeNode root = buildTreeByPreorderAndInorder(xianxu, 0, xianxu.length - 1, zhongxu, 0, zhongxu.length - 1); return BFS(...
0
点赞
评论
收藏
转发
不想看论文
2022-04-03 08:59
中国科学院大学 计算机类
题解 | #重建二叉树#
Java版——由前序和中序构建二叉树 https://liyanzu0926.github.io/2022/03/06/second/ public class Solution { public TreeNode reConstructBinaryTree(int [] pre,int [] vin) { return reConstructBinaryTree(pre, 0, pre.length - 1, vin, 0, vin.length - 1); } private TreeNode reConstructBinaryTree(i...
0
点赞
评论
收藏
转发
1
2
工具箱
TA的圈子
暂未加入圈子
TA的圈子
TA的笔记
暂无笔记
TA的笔记
登录
0
天
已登录
0
天
连续登录
0
人
今日访客
牛客网
牛客企业服务