牛客刷题笔记
牛客在线编程题
绿箭柠檬茶
热爱编程的绿箭柠檬茶
展开
-
牛客刷题---JZ32 从上往下打印二叉树
二叉树的层次遍历原创 2022-04-17 19:48:46 · 96 阅读 · 0 评论 -
牛客刷题---JZ55 二叉树的深度
二叉树的深度原创 2022-04-18 22:33:10 · 325 阅读 · 0 评论 -
牛客刷题---JZ28 对称的二叉树
对称的二叉树原创 2022-04-15 22:53:46 · 462 阅读 · 0 评论 -
牛客刷题---JZ27 二叉树的镜像
二叉树的镜像,二叉树、递归、栈、队列原创 2022-04-14 22:02:10 · 508 阅读 · 0 评论 -
牛客刷题---JZ73 翻转单词序列
翻转单词序列字符串数组StringBuilder原创 2022-04-13 21:50:02 · 170 阅读 · 0 评论 -
牛客刷题---JZ29 顺时针打印矩阵
顺时针打印矩阵原创 2022-04-13 15:10:54 · 139 阅读 · 0 评论 -
牛客刷题---JZ65 不用加减乘除做加法
不用加减乘除做加法,位运算原创 2022-04-11 22:13:33 · 234 阅读 · 0 评论 -
牛客刷题---JZ66 构建乘积数组
构建乘积数组原创 2022-04-10 21:53:17 · 97 阅读 · 2 评论 -
牛客刷题---JZ50 第一个只出现一次的字符
ASCILL码,数组原创 2022-04-09 21:22:07 · 119 阅读 · 0 评论 -
牛客刷题---JZ30 包含min函数的栈
辅助栈实现包含min函数的栈原创 2022-04-07 22:13:08 · 77 阅读 · 0 评论 -
牛客刷题---JZ15 二进制中1的个数
二进制右移动运算原创 2022-04-06 21:28:48 · 269 阅读 · 0 评论 -
牛客刷题---JZ52 两个链表的第一个公共结点
两个链表的第一个公共结点原创 2022-04-03 20:06:24 · 616 阅读 · 0 评论 -
牛客刷题---JZ25 合并两个排序的链表
合并两个排序的链表描述输入两个递增的链表,单个链表的长度为n,合并这两个链表并使新链表中的节点仍然是递增排序的。数据范围: 0 ≤n≤1000,-1000节点值 : −1000≤节点值≤1000要求:空间复杂度 O(1)O(1),时间复杂度 O(n)O(n)如输入{1,3,5},{2,4,6}时,合并后的链表为{1,2,3,4,5,6},所以对应的输出为{1,2,3,4,5,6},转换过程如下图所示:或输入{-1,2,4},{1,3,4}时,合并后的链表为{-1,1,2,3,4,4原创 2022-03-25 11:08:49 · 464 阅读 · 0 评论 -
牛客刷题---JZ9 用两个栈实现队列
用两个栈实现队列原创 2022-03-31 20:30:42 · 94 阅读 · 0 评论 -
牛客刷题---JZ22 链表中倒数最后k个结点
链表中倒数最后k个结点描述输入一个长度为 n 的链表,设链表中的元素的值为 ai ,返回该链表中倒数第k个节点。如果该链表长度小于k,请返回一个长度为 0 的链表。例如输入{1,2,3,4,5},2时,对应的链表结构如下图所示:其中蓝色部分为该链表的最后2个结点,所以返回倒数第2个结点(也即结点值为4的结点)即可,系统会打印后面所有的节点来比较。示例1输入:{1,2,3,4,5},2返回值:{4,5}说明:返回倒数第2个节点4,系统会打印后面所有的节点来比较。示例2输入:{原创 2022-03-23 21:51:09 · 492 阅读 · 0 评论 -
牛客刷题---JZ24 反转链表
反转链表描述给定一个单链表的头结点pHead(该头节点是有值的,比如在下图,它的val是1),长度为n,反转该链表后,返回新链表的表头。数据范围: 0≤n≤1000要求:空间复杂度 O(1),时间复杂度 O(n)。如当输入链表{1,2,3}时,经反转后,原链表变为{3,2,1},所以对应的输出为{3,2,1}。以上转换过程如下图所示:示例1:输入:{1,2,3}返回值:{3,2,1}示例2输入:{}返回值:{}说明:空链表则输出空...原创 2022-03-22 21:41:02 · 296 阅读 · 0 评论 -
牛客刷题---JZ18 删除链表的节点
删除链表的节点描述给定单向链表的头指针和一个要删除的节点的值,定义一个函数删除该节点。返回删除后的链表的头节点。数据范围:0<=链表节点值<=100000<=链表长度<=10000示例1输入:{2,5,1,9},5返回值:{2,1,9}说明:给定你链表中值为 5 的第二个节点,那么在调用了你的函数之后,该链表应变为 2 -> 1 -> 9示例2输入:{2,5,1,9},1返回值:{2,5,9}说明:给定你链表中值为 1 的第三个节点,那么原创 2022-03-22 10:03:11 · 559 阅读 · 0 评论 -
牛客刷题---JZ6 从尾到头打印链表
从尾到头打印链表描述输入一个链表的头节点,按链表从尾到头的顺序返回每个节点的值(用数组返回)。如输入{1,2,3}的链表如下图:返回一个数组为[3,2,1]0 <= 链表长度 <= 10000示例1输入: {1,2,3}返回值: [3,2,1]示例2输入: {67,0,24,58}返回值:[58,24,0,67]解法:...原创 2022-03-21 21:27:13 · 90 阅读 · 0 评论 -
牛客刷题---JZ17 打印从1到最大的n位数
打印从1到最大的n位数描述 输入数字 n,按顺序打印出从 1 到最大的 n 位十进制数。比如输入 3,则打印出 1、2、3 一直到最大的 3 位数 999。用返回一个整数列表来代替打印n 为正整数,0 < n <= 5 示例1输入:1 返回值:[1,2,3,4,5,6,7,8,9] 解法一:纯暴力法 public static int[] printNumbers(int n) { // 1、定义一个数组 int a= (in原创 2022-03-17 21:45:28 · 392 阅读 · 0 评论 -
牛客刷题---JZ5 替换空格
替换空格描述请实现一个函数,将一个字符串s中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。数据范围:0 ≤ len(s) ≤ 1000 。保证字符串中的字符为大写英文字母、小写英文字母和空格中的一种。示例:输入:“We Are Happy”返回值:“We%20Are%20Happy”示例:输入:" "返回值:"%20"解法一:public static String replaceSpace原创 2022-03-16 21:22:40 · 347 阅读 · 0 评论 -
牛客刷题---JZ3 数组中重复的数字
数组中重复的数字描述在一个长度为n的数组里的所有数字都在0到n-1的范围内。 数组中某些数字是重复的,但不知道有几个数字是重复的。也不知道每个数字重复几次。请找出数组中任意一个重复的数字。 例如,如果输入长度为7的数组[2,3,1,0,2,5,3],那么对应的输出是2或者3。存在不合法的输入的话输出-1数据范围:0≤ n ≤10000进阶:时间复杂度O(n)空间复杂度O(n)示例1输入: [2,3,1,0,2,5,3]返回值:2说明:2或3都是对的解法一:利用se原创 2022-03-15 22:09:59 · 585 阅读 · 0 评论 -
牛客刷题---JZ10 斐波那契数列
描述自己想到的解法: 递归实现public class Solution { public int Fibonacci(int n) { if(n==1||n==2){ return 1; }else{ // n>2 return Fibonacci(n-1)+Fibonacci(n-2); } }}优点,代码简单好写缺点:慢,数字太大会超时时间复杂度:O(2^原创 2022-03-14 21:51:08 · 359 阅读 · 0 评论