首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
AI 模拟面试
简历
求职
学习
基础学习课
实战项目课
求职辅导课
专栏&文章
竞赛
搜索
我要招人
发布职位
发布职位、邀约牛人
更多企业解决方案
在线笔面试、雇主品牌宣传
登录
/
注册
每天两题神清气爽
获赞
887
粉丝
150
关注
44
看过 TA
3668
男
合肥共达职业技术学院
2024
Java
IP属地:安徽
给个Offer好不好
私信
关注
拉黑
举报
举报
确定要拉黑每天两题神清气爽吗?
发布(125)
评论
刷题
收藏
每天两题神清气爽
关注TA,不错过内容更新
关注
2023-08-09 16:41
合肥共达职业技术学院 Java
题解 | #所有的回文子串I# Java
这个函数使用回溯法来搜索所有可能的分组方案。它首先定义一个名为 res 的列表来存储最终结果,然后调用 backtrack 函数来进行搜索。backtrack 函数接受四个参数:res、tempList、s 和 start。其中,res 是最终结果列表,tempList 是当前的分组方案,s 是输入字符串,而 start 是当前搜索的起始位置。在 backtrack 函数中,我们首先检查是否已经搜索到字符串的末尾。如果是,则将当前的分组方案添加到最终结果列表中。否则,我们从 start 开始遍历字符串,对于每个位置 i,如果从 start 到 i 的子串是一个回文串,则将其添加到当前分组方案中...
算法题刷刷刷
0
点赞
评论
收藏
分享
2023-08-09 16:21
合肥共达职业技术学院 Java
题解 | #牛群全排列数# Java
由于题目要求不能使用循环和判断语句,我们可以使用递归来实现这个函数。这个函数接受一个整数 n 作为参数,返回 n 的阶乘。当 n 等于 0 时,函数返回 1;否则,函数返回 n 乘以 factorial(n - 1) 的结果。由于结果可能很大,我们需要在每次计算中取模以避免溢出。 public class Solution { private static final int MOD = 1000000007; private int dfs(int n) { return n == 0 ? 1 : (int)((long)n * factorial(n - ...
算法题刷刷刷
0
点赞
评论
收藏
分享
2023-08-08 19:57
合肥共达职业技术学院 Java
题解 | #相逆叶子#
写个函数层序遍历取所有叶子结点之后拿到了比一比就行 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 static ArrayList<Integer> levelOrder(...
算法题刷刷刷
0
点赞
评论
收藏
分享
2023-08-08 19:33
合肥共达职业技术学院 Java
题解 | #牛群的相似结构# Java
1. 如果两个节点都为空,即p和q都为null,那么它们是相同的树,直接返回true。2. 如果一个结点为null而另一个结点不为空,或者它们的值不相等,那么它们就不是相同的树,直接返回false。如果条件判断没有返回,那么表示当前比较的节点p和q都不为null且值相等,此时需要递归地调用isSameTree方法来比较它们的左子树和右子树。如果左子树和右子树都相同,那么整个树就相同,返回true;否则返回false。 public class Solution { public boolean isSameTree (TreeNode p, TreeNode q) { ...
算法题刷刷刷
0
点赞
评论
收藏
分享
2023-08-07 21:54
合肥共达职业技术学院 Java
题解 | #牛群的最大高度# Java 层序遍历
本以为是求最大高度, 没看清是最大的节点val public class Solution { public int findMaxHeight (TreeNode root) { // 层序遍历 if (root == null ) return 0; Queue<TreeNode> q = new LinkedList<>(); q.offer(root); int ans = 0; while (!q.isEmpty()) { int ...
算法题刷刷刷
0
点赞
评论
收藏
分享
2023-08-07 21:41
合肥共达职业技术学院 Java
题解 | #牛群编号的回文顺序II# Java
基本思路是将链表转换为字符串,并使用动态规划的方法来寻找最长回文子链表。首先,判断链表是否为空或只有一个节点,如果是的话,则直接返回null。然后,将链表中的节点值依次添加到StringBuilder中,以形成一个字符串表示整个链表。接下来,初始化一些变量,包括长度(len)为字符串长度、最大回文子链表长度(maxLen)初始化为1,和回文子链表起始位置(begin)初始化为0。接着,创建一个布尔型的二维数组dp,其中dp[i][j]表示字符串s的第i个字符到第j个字符是否为回文串。将所有长度为1的子串都初始化为回文串。将字符串转换为字符数组charArray,为后续判断字符是否相等做准备。开...
算法题刷刷刷
0
点赞
评论
收藏
分享
2023-08-06 17:41
合肥共达职业技术学院 Java
题解 | #牛群编号的回文顺序#
用个栈暂存一下吧,然后一个个对比 public class Solution { public boolean isPalindrome (ListNode head) { ListNode cur = head; Stack<Integer> stack = new Stack<>(); while (cur != null) { stack.push(cur.val); cur = cur.next; } while (hea...
算法题刷刷刷
0
点赞
评论
收藏
分享
2023-08-06 17:34
合肥共达职业技术学院 Java
题解 | #牛的品种排序IV#
不排序就用俩链表分别存 0 1,不懂为什么算难题 public class Solution { public ListNode sortCowsIV (ListNode head) { ListNode l0 = new ListNode(-1), cur0 = l0; ListNode l1 = new ListNode(-1), cur1 = l1; while (head != null) { if (head.val == 0) { cur0.next = new Li...
算法题刷刷刷
0
点赞
评论
收藏
分享
2023-08-05 17:28
合肥共达职业技术学院 Java
题解 | #牛群的身高排序#
本来的方案:在方法内部,首先进行了一些边界检查,如果头结点为null,则直接返回null。然后,创建了一个优先队列PriorityQueue,并使用自定义比较器(Comparator)来构造小根堆。该比较器的compare方法根据节点的值进行比较,以确保小的值在队列的前面。接下来,通过循环遍历链表,将每个节点都添加到优先队列中。然后,创建了一个虚拟头结点dummy和一个指针cur,用于构建排序后的链表。在循环结束后,开始从优先队列中将节点取出,并按顺序连接到排序链表的末尾。最后,返回排序后的链表的头结点。 public class Solution { public ListNode...
算法题刷刷刷
0
点赞
评论
收藏
分享
2023-08-05 17:10
合肥共达职业技术学院 Java
题解 | #牛群的合并# Java
借助小根堆数据结构,每次选择最小的节点,如果最小的节点有下一个,就加进堆里面掌握一下PriorityQueue借助Comparator初始化的方法 public class Solution { public ListNode mergeKLists (ListNode[] lists) { if (lists.length == 0) return null; PriorityQueue<ListNode> pq = new PriorityQueue<>(new Comparator<ListNode>() { ...
算法题刷刷刷
0
点赞
评论
收藏
分享
2023-08-04 15:30
合肥共达职业技术学院 Java
题解 | #牛群旋转#
{1,2,3,4,5,6,7,8,9},3 假设用例链表长度为9,k=3从用例中易总结规律得从头结点,跳 9-3=6次到新头,只要把尾巴连起来,新尾巴断掉即可~总结一下失败教训while xxx!=null 这个循环跳完了 xxx已经是null了不是尾巴啊 import java.util.*; /* * public class ListNode { * int val; * ListNode next = null; * public ListNode(int val) { * this.val = val; * } * } ...
算法题刷刷刷
0
点赞
评论
收藏
分享
2023-08-04 14:53
合肥共达职业技术学院 Java
题解 | #牛群分隔# Java
就是新构造两个链子,分别存小于x的和大于等于x的,最后把两个链子合起来学到的东西:用临时ListNode 存储head的next,用完了再赋值给head注意断开节点之前的链子 防止干扰 public class Solution { public ListNode cow_partition (ListNode head, int x) { ListNode smallHead = new ListNode(0); ListNode smallCur = smallHead; ListNode bigHead = new ListNo...
算法题刷刷刷
0
点赞
评论
收藏
分享
2023-08-03 19:54
合肥共达职业技术学院 Java
题解 | #牛牛队列成环#
经典快慢指针不过这次一开始考虑漏了两点fast指针一次跳两格,所以判断条件的那里应该fast!=null && fast.next!=null快指针的位置要在慢指针后面 public class Solution { public boolean hasCycle (ListNode head) { // 快慢指针 ListNode low = head; ListNode fast = head.next; while (low != null && fast != null &...
算法题刷刷刷
0
点赞
评论
收藏
分享
2023-08-03 19:32
合肥共达职业技术学院 Java
题解 | #牛群的能量值#
这题还好是逆序的好写多了,不过不是逆序也就多一个翻转链表的步骤。就是逐个取值,两节点+进位=sum,如果大于等于10,就carry=1,新建sum-10的节点拼接在后面如果小于10就carry=0,新建sum的节点拼接在后面然后跳啊跳,跳到两个节点都为null时候再看一眼进位,进位为1再补上最后一个节点。> 其中,在有一方节点为null另一方不是null时,需要考虑next可能会数组越界,于是我加了个三目运算符防止报错 public class Solution { public ListNode addEnergyValues (ListNode l1, ListNode l...
算法题刷刷刷
0
点赞
评论
收藏
分享
2023-08-02 14:53
合肥共达职业技术学院 Java
题解 | #合并两群能量值#
虚拟头结点。在两个指针都不为空时进入循环如果l1<l2,那就拼接l2的节点,l2向后跳一位;反之亦然cur指针每次向后跳结束循环时候,至少有一个列表为空,拼接上另一个就可 public class Solution { public ListNode mergeEnergyValues (ListNode l1, ListNode l2) { ListNode dummy = new ListNode(0); ListNode cur = dummy; ListNode cur1 = l1; ListNode cu...
算法题刷刷刷
0
点赞
评论
收藏
分享
1
4
5
6
7
8
9
关注他的用户也关注了:
牛客网
牛客企业服务