newCoderTheWarrior
newCoderTheWarrior
全部文章
分类
未归档(3)
题解(22)
归档
标签
去牛客网
登录
/
注册
newCoderTheWarrior的博客
全部文章
(共25篇)
【Warrior刷题笔记】NC17 最长回文子串 【动态规划】详细注释
题目 来源:牛客 链接https://www.nowcoder.com/practice/b4525d1d84934cf280439aeecc36f4af?tpId=117&&tqId=37789&rp=1&ru=/activity/oj&qru=/ta/jo...
C++
字符串
动态规划
2021-12-26
1
652
【Warrior刷题笔记】NC102 在二叉树中找到两个节点的最近公共祖先 【树的深度优先搜索】详细注释
题目 来源:牛客算法 地址:https://www.nowcoder.com/practice/e0cc33a83afe4530bcec46eba3325116?tpId=117&&tqId=37826&rp=1&ru=/activity/oj&qru=/ta...
C++
二叉树
深度优先搜索
2021-12-26
0
442
题解 | #最长公共子串#
解题思路 此题可以使用二分法加滑动窗口解决。 计算串一str1和串二str2的长度m,n,使用low,high标记可能的公共子串长度上下限,初始化为0,n。 初始化可能的公共子串长度len为(high-low)/2+low,依次判断从下标i(0<=i<=m-len)开始的长度为len的滑...
C++
字符串
二分法
滑动窗口
2021-12-25
0
515
【Warrior刷题笔记】牛客NC127 最长公共子串 【二分法+滑动窗口】详细注释
题目 来源:牛客 牛客算法 NC127 最长公共 子串 1.描述 给定两个字符串str1和str2,输出两个字符串的最长公共子串 题目保证str1和str2的最长公共子串存在且唯一。 2.示例 示例1 输入:"1AB2345CD", "12345EF" 返回值:"2345" 解题思路 此...
C++
二分查找
滑动窗口
字符串
字符匹配
2021-12-25
0
413
【Warrior刷题笔记】奇偶树 【树的层序遍历】详细注释
题目 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/even-odd-tree 1.描述 如果一棵二叉树满足下述几个条件,则可以称为 奇偶树 : 二叉树根节点所在层下标为 0 ,根的子节点所在层下标为 1 ,根的孙节点所在层下标为 2 ,依...
C++
二叉树
广度优先搜索
模拟
队列
2021-12-25
1
626
【Warrior刷题笔记】NC41 最长无重复子数组【记忆化滑动窗口+双指针+哈希】逐行注释
题目 原题链接 描述 给定一个长度为n的数组arr,返回arr的最长无重复元素子数组的长度,无重复指的是所有数字都不相同。 子数组是连续的,比如[1,3,5,7,9]的子数组有[1,3],[3,5,7]等等,但是[1,3,7]不是子数组。 要求:空间复杂度O(n),时间复杂度O(nlogn) 思路...
C++
数组
哈希表
双指针
滑动窗口
2021-12-24
4
610
题解 | #两个链表的第一个公共结点#
解法一 哈希表 解法一比较简单,考虑空间换时间。 1.遍历链表A,使用哈希表存储遍历过的节点; 2.遍历链表B,判断当前节点是否在1的哈希表中,如果在,返回该节点;如果不在,遍历下一节点; 3.如果B中所有节点都不在1的哈希表中,返回空。 代码 /** * Definition for singl...
C++
哈希表
链表
双指针
2021-12-23
0
376
题解 | #连续子数组的最大和#
解题思路 此题可以用动态规划解决。 题目要求返回具有最大和的连续子数组的最大和,朴素思路是枚举所有连续子数组并计算其和,返回最大值,但是这样会超时。 我们换个思路,假设f(i)为以nums[i]结尾的连续子数组的最大和,那么f(i)(其中,0≤i<nums.size())中的最大值就是题目的答...
C++
数组
动态规划
2021-12-20
0
366
题解 | #链表中的节点每k个一组翻转# 【模拟】详细注释 双超100
解题思路 本题是一道模拟题,按题给条件模拟即可,难的是本题细节很多。 如果是普通的翻转链表,那么很简单。但是按k个一组翻转的话,你不光要正确地翻转本组节点,还要能让上一组的尾结点链接到本组的头部,并且将本组节点的尾部链接到下一组的头部。 这里使用两个指针tailOfLastVisited,headO...
C++
2021-12-19
0
364
题解 | #用两个栈实现队列#
解题思路 用两个栈实现队列。 1.一个栈用作输入栈,一个栈用作输出栈。 2.输入数据时,直接压入第一个栈。 3.需要输出数据时,直接将第一个栈的数据全部按栈输出顺序挪到第二个栈中,输出第二个栈的栈顶即可。之后直到栈二再次为空,否则不进行栈一数据的移动。 代码 class MyQueue { pub...
C++
栈
队列
2021-12-17
0
427
首页
上一页
1
2
3
下一页
末页