总之就是非常菜
总之就是非常菜
全部文章
题解
归档
标签
去牛客网
登录
/
注册
总之就是非常菜的博客
Chasing Lights!
全部文章
/ 题解
(共6篇)
Java-数组中未出现的最小正整数
思路创建一个正整数为最小的正整数1记为 num,接下来需要用HashSet遍历数组的每个值,如果当前值小于等于0或者当前值在set中已存在,则跳过。直到节点值遍历完,判断set中是否包含num,如果包含则继续判断num+1,若不包含则直接返回num,时间复杂度还是会超过n,不是正确解法记录下思路。代...
2021-01-20
2
1258
Java-删除排序链表中的重复元素
思路比较暴力的做法。。没有双指针的做法好。利用map存储链表所有的节点,然后在遍历Remove map中的每一个节点的过程中判断删除后map是否还包含该节点值,如果删除后还包含,则把该节点加上,相当于undoRemove操作;如果删除后map中不包含该节点值,则保留该节点值,最后依据之前保留的节点值...
2021-01-19
1
609
Java-设计getMin功能的栈(一个栈+数组实现)
思路入栈和出栈操作用栈原有的push,pop就能实现,但是得到最小值需要一个数组遍历栈中的所有值,再排序取出最小值存入结果数组。代码 public int[] getMinStack (int[][] op) { // write code here ArrayList<Int...
2021-01-18
1
614
链表中的节点每k个一组翻转
思路将链表中前k个节点存入栈,再取出恰好可以实现每k个一组翻转,要注意临界条件:链表的最后一个节点放入之后,栈的大小小于k值。代码 /** * * @param head ListNode类 * @param k int整型 * @return ListNode类 */ public Li...
2021-01-11
1
692
两个链表相加生成相加链表
思路根据两个链表相加的特点,可以使用三个栈来模拟两个链表相加,第一个栈存第一个链表的头到尾节点,第二个链表存第二个链表的头到尾巴节点,由于节点值的进位是指向头节点,待前两个栈存完节点后取出相加,保留进位值,可以做到进位值随着栈的取出到达前一个节点,把前两个栈取出的值和进位值相加得到的值重新创一个Li...
2021-01-10
2
710
最长公共子串
思路最长公共子串是两个字符串最长相同的连续子序列;最长公共子序列是两个字符串最长相同的可非连续子序列,思路可以和最长公共子序列一样(动态规划经典例题——最长公共子序列和最长公共子串 ),但是仅仅用二维数组只能得到递推关系,即当前最优解为上一个解+1:dp[i][j]=dp[i-1][j-1],无法确...
2021-01-09
10
1741