![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
牛客刷题
文章平均质量分 88
大鹏的编程之路
既然选择远方,便只顾风雨兼程
展开
-
牛客day12(判断二叉树是否对称,判断二叉树是否为指定的值,合并二叉树,找到搜索二叉树中错误的节点,没有重复数字的所有排列,两个链表相加生成新的链表)
牛客day12文章目录牛客day121.判断二叉树是否对称题目解题思路1.递归法2.迭代法核心代码1.递归2.迭代2.判断二叉树节点和是否为指定的值题目解题思路核心代码3.1.判断二叉树是否对称题目给定一棵二叉树,判断其是否是自身的镜像(即:是否对称)希望你可以用递归和迭代两种方法解决这个问题解题思路1.递归法递归三部曲1.确定递归函数的参数和返回值因为我们要比较的是根节点的两个子树是否是相互翻转的,进而判断这个树是不是对称树,所以要比较的是两个树,参数自然也是左子树节点和右子树节点。原创 2021-05-10 12:33:26 · 337 阅读 · 0 评论 -
牛客刷题day11(在两个长度相等的数组中寻找中位数,删除链表中重复的元素,矩阵元素查找,链表的奇偶重排,重排链表,反转数字)
牛客刷题day11文章目录牛客刷题day111.在两个长度相等的数组中寻找中位数题目解题思路核心代码2.删除链表中重复的元素题目解题思路核心代码3.矩阵元素查找题目解题思路核心代码4.链表的奇偶重排题目解题思路核心代码5.重排链表题目解题思路核心代码6.反转数字题目解题思路核心代码1.在两个长度相等的数组中寻找中位数题目给定两个有序数组arr1和arr2,已知两个数组的长度都为N,求两个数组中所有数的上中位数。上中位数:假设递增序列长度为n,若n为奇数,则上中位数为第n/2+1个数;否则为第n/2原创 2021-04-15 16:58:54 · 201 阅读 · 0 评论 -
牛客刷题day10(进制转换,链表指定区间反转,最长公共子序列,数组中未出现的最小正整数,表达式求值,判断一个链表是否为回文结构)
牛客刷题day10文章目录牛客刷题day101.进制转换题目解题思路核心代码2.链表指定区间 反转题目解题思路核心代码3.最长公共子序列题目解题思路核心代码4.数组中未出现的最小正整数题目解题思路核心代码1.常规思路2.符合题意5.表达式求值题目解题思路核心代码6.判断一个链表是否为回文结构题目解题思路核心代码1.进制转换题目给定一个十进制数M,以及需要转换的进制数N。将十进制数M转化为N进制数输入7,2 返回值"111"解题思路除N取余,然后倒序排列,高位补零。说M是32位整数,所以有可原创 2021-04-14 20:01:38 · 197 阅读 · 0 评论 -
牛客刷题day9(排序,寻找峰值,求平方根,合并K个已经排序的链表,字符串的排列,输出二叉树右视图,单链表的排序,出现次数topk的问题)
牛客刷题day9文章目录牛客刷题day91.排序题目解题思路核心代码2.寻找峰值题目解题思路核心代码3.求平方根题目解题思路核心代码4.合并K个已排序的链表题目解题思路核心代码1.递归解决2.最小堆4.1.排序题目给定一个数组,请你编写一个函数,返回该数组排序后的形式。解题思路关于排序,请看专题排序专栏核心代码关于排序代码,请看专题排序专栏2.寻找峰值题目山峰元素是指其值大于或等于左右相邻值的元素。给定一个输入数组nums,任意两个相邻元素值不相等,数组可能包含多个山峰。找到索引最大的原创 2021-04-13 19:38:32 · 251 阅读 · 1 评论 -
牛客刷题day8(滑动窗口最大值,在转动过的有序数组寻找最大值,验证ip地址,树的直径,在二叉树中找到两个节点最近的公共祖先,二叉树根节点到子节点所有路径和)
牛客刷题day8文章目录牛客刷题day81.滑动窗口最大值题目解题思路核心代码2.在转动过的有序数组中寻找最大值题目解题思路核心代码3.验证ip地址题目解题思路核心代码4.树的直径题目思路核心代码5.在二叉树中找到两个节点最近的公共祖先题目解题思路核心代码6.二叉树根节点到子节点所有路径和题目解题思路核心代码1.滑动窗口最大值题目给定一个数组和滑动窗口的大小,找出所有滑动窗口里数值的最大值。例如,如果输入数组{2,3,4,2,6,2,5,1}及滑动窗口的大小3,那么一共存在6个滑动窗口,他们的最大值原创 2021-04-12 09:01:04 · 221 阅读 · 0 评论 -
牛客刷题day7(删除链表倒数第n个节点,两个字符串最长公共子串,最小编辑距离,岛屿数量,二叉树深度,重建二叉树)
牛客刷题day7文章目录牛客刷题day71.删除链表倒数第n个节点题目解题思路核心代码2.1.删除链表倒数第n个节点题目给定一个链表,删除链表的倒数第 nn 个节点并返回链表的头指针例如,给出的链表为: 1→2→3→4→5, n= 2删除了链表的倒数第 n 个节点之后,链表变为1→2→3→5.解题思路和前几天删除链表第K个节点思路差不多都是使用双指针,这里就不赘述删除第K个节点核心代码class Solution: def removeNthFromEnd(self, hea原创 2021-04-08 09:37:02 · 243 阅读 · 0 评论 -
排序专栏(冒泡,插入,选择,快速,堆)
排序专栏文章目录排序专栏1.冒泡排序2.插入排序3.选择排序4.1.冒泡排序冒泡排序(Bubble Sort)也是一种简单直观的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢"浮"到数列的顶端。class Solution: def bubbleSort(self, arr): if not arr:原创 2021-03-30 11:07:13 · 288 阅读 · 0 评论 -
牛客刷题day6(判断t1树中是否有与t2树拓扑结构,用两个栈实现队列,最长回文字符串,数组中出现的数字超过一半)
牛客刷题day6文章目录牛客刷题day61.判断t1树中是否有与t2树拓扑结构题目解题思路核心代码2.1.判断t1树中是否有与t2树拓扑结构题目给定彼此独立的两棵二叉树,判断 t1 树是否有与 t2 树拓扑结构完全相同的子树。设 t1 树的边集为 E1,t2 树的边集为 E2,若 E2 等于 E1 ,则表示 t1 树和t2 树的拓扑结构完全相同。解题思路使用递归时间复杂度:O ( M ∗ N )当root1什么都没有的时候,在root1里面找不到任何节点直接返回false。当root2提原创 2021-03-27 19:41:24 · 243 阅读 · 0 评论 -
牛客刷题day5(链表中环的入口节点,删除链表中重复元素,平衡二叉树,股票交易两次交易和不限制交易次数,二叉树根节点到子节点等于制定的数)
牛客刷题day5文章目录牛客刷题day51.链表中环的入口节点题目解题思路核心代码2. 删除有序链表中的重复元素题目解题思路3.平衡二叉树题目1.链表中环的入口节点题目对于一个给定的链表,返回环的入口节点,如果没有环,返回null拓展:你能给出不利用额外空间的解法么?解题思路快慢指针方法:将两指针分别放在链表头(X)和相遇位置(Z),并改为相同速度推进,则两指针在环开始位置相遇(Y),如图所示。快指针与慢指针均从X出发,在Z相遇。此时,慢指针行使距离为a+b,快指针为a+b+n(b+c)原创 2021-03-27 16:05:33 · 203 阅读 · 0 评论 -
牛客刷题day4(链表中倒数第K个节点,螺旋矩阵,判断回文,求二叉树层次遍历)
牛客刷题day4文章目录牛客刷题day41.链表中倒数第K个节点题目解题思路核心代码2.螺旋矩阵题目解题思路核心代码3.判断回文题目解题思路核心代码4.求二叉树的层次遍历题目解题思路核心代码1.链表中倒数第K个节点题目输入一个链表,输出该链表中倒数第k个结点。如果该链表长度小于k,请返回空。输入:{1,2,3,4,5},1 输出 :{5}解题思路1.定义两个指针,fast,slow指向链表的头结点。2。fast指针先走k步,如果这k步之内fast指针等于空,说明链表长度小于k,直接返回空原创 2021-03-26 17:58:35 · 210 阅读 · 2 评论 -
牛客刷题day3(数组相加和为零的三元组,最长递增子序列,不相邻最大子序和,两个链表的公共节点,设计GetMin功能的栈,大数加法)
牛客刷题day3文章目录牛客刷题day31.数组相加和为零的三元组题目解题思路核心代码2.最长递增子序列题目解题思路核心代码3.不相邻最大子序和题目解题思路核心代码4.两个链表的公共节点题目解题思路核心代码1.数组相加和为零的三元组题目给出一个有n个元素的数组S,S中是否有元素a,b,c满足a+b+c=0?找出数组S中所有满足条件的三元组。注意:三元组(a、b、c)中的元素必须按非降序排列。(即a≤b≤c)解集中不能包含重复的三元组。例如,给定的数组 S = {-10 0 10 20 -10原创 2021-03-25 17:17:35 · 164 阅读 · 0 评论 -
牛客刷题day2(找到无重复最长字符串,缺失数字,合并有序链表,搜索二叉树完全二叉树,合并区间)
牛客刷题day2文章目录牛客刷题day21.找到无重复最长字符串题目解题思路核心算法2.缺失数字题目解题思路核心算法3.合并有序链表题目解题思路核心代码1.找到无重复最长字符串题目给定一个数组arr,返回arr的最长无的重复子串的长度(无重复指的是所有数字都不相同)。解题思路1.对数组遍历, 并使用临时数组保存遍历过的元素, 如果元素出现,则比较并保存当前的最大长度,同时临时序列保留相同元素后的无重复序列继续遍历2.使用双指针,如果新的元素 与起止指针范围内的元素重复,就暂存当前的无重复序列长原创 2021-03-23 14:10:30 · 214 阅读 · 0 评论 -
牛客刷题 day1(寻找第K大,镜像二叉树)
牛客刷题 day1文章目录牛客刷题 day1寻找第K大题目解题思路核心算法镜像二叉树题目解题思路核心算法寻找第K大题目有一个整数数组,请你根据快速排序的思路,找出数组中第K大的数。给定一个整数数组a,同时给定它的大小n和要找的K(K在1到n之间),请返回第K大的数,保证答案存在解题思路像快排一样,但是每次排完需要与k进行比较,具体比较看代码。1.由于一般排序是从小到大排的,所以注意从小到大排这里是 n-i 与 k进行比较;2.或者从大到小排,则比较 i+1 与 k的大小;核心算法clas原创 2021-03-22 18:54:46 · 145 阅读 · 0 评论