刷题
_Herc
这个作者很懒,什么都没留下…
展开
-
牛客-C语言解法- 数字在升序数组中出现的次数
给定一个长度为 n 的非降序数组和一个非负数整数 k ,要求统计 k 在数组中出现的次数数据范围: 0≤n≤1000,0≤k≤100,数组中每个元素的值满足 0≤val≤100要求:空间复杂度 O(1),时间复杂度 O(logn)原创 2023-04-24 10:10:18 · 85 阅读 · 0 评论 -
牛客-C语言解法- 第一个只出现一次的字符
在一个长为 字符串中找到第一个只出现一次的字符,并返回它的位置, 如果没有则返回 -1(需要区分大小写).(从0开始计数)数据范围: 0≤n≤10000,且字符串只有字母组成。要求:空间复杂度 O(n),时间复杂度 O(n)原创 2023-04-24 10:09:35 · 216 阅读 · 0 评论 -
牛客-C语言解法- 跳台阶
一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个 n 级的台阶总共有多少种跳法(先后次序不同算不同的结果)。数据范围: 1≤n≤40要求:时间复杂度: O(n) ,空间复杂度: O(1)原创 2023-04-24 10:08:43 · 83 阅读 · 0 评论 -
牛客-C语言解法- 顺时针旋转矩阵
有一个NxN整数矩阵,请编写一个算法,将矩阵顺时针旋转90度。给定一个NxN的矩阵,和矩阵的阶数N,请返回旋转后的NxN矩阵。数据范围: 0原创 2023-04-24 10:07:02 · 242 阅读 · 0 评论 -
牛客-C语言解法- 最小覆盖子串
给出两个字符串 s 和 t,要求在 s 中找出最短的包含 t 中所有字符的连续子串。数据范围: 0≤∣S∣,∣T∣≤10000,保证s和t字符串中仅包含大小写英文字母要求:进阶:空间复杂度 O(n) , 时间复杂度 O(n)例如:T="XYZ"找出的最短子串为"YXNZ".注意:如果 s 中没有包含 t 中所有字符的子串,返回空字符串 “”;满足条件的子串可能有很多,但是题目保证满足条件的最短的子串唯一。原创 2023-04-24 10:05:09 · 299 阅读 · 0 评论 -
牛客-C语言解法- 旋转数组
一个数组A中存有 n 个整数,在不允许使用另外数组的前提下,将每个整数循环向右移 M( M >=0)个位置,即将A中的数据由(A0 A1 ……AN-1 )变换为(AN-M …… AN-1 A0 A1 ……AN-M-1 )(最后 M 个数循环移至最前面的 M 个位置)。如果需要考虑程序移动数据的次数尽量少,要如何设计移动的方法?数据范围: 0原创 2023-04-24 10:04:26 · 116 阅读 · 0 评论 -
牛客-C语言解法- 盛水最多的容器
盛水最多的容器_牛客题霸_牛客网 (nowcoder.com)原创 2023-04-24 10:02:31 · 122 阅读 · 0 评论 -
牛客-C语言解法- 最长无重复子数组
给定一个长度为n的数组arr,返回arr的最长无重复元素子数组的长度,无重复指的是所有数字都不相同。子数组是连续的,比如[1,3,5,7,9]的子数组有[1,3],[3,5,7]等等,但是[1,3,7]不是子数组数据范围: 0≤arr.length≤10^5, 0原创 2023-04-22 21:41:05 · 441 阅读 · 0 评论 -
牛客-C语言解法-三数之和
给出一个有n个元素的数组S,S中是否有元素a,b,c满足a+b+c=0?找出数组S中所有满足条件的三元组。数据范围: 0≤n≤1000,数组中各个元素值满足 ∣val∣≤100空间复杂度: O(n^2),时间复杂度 O(n^2)三元组(a、b、c)中的元素必须按非降序排列。(即a≤b≤c)解集中不能包含重复的三元组。原创 2023-04-22 21:39:52 · 283 阅读 · 0 评论 -
牛客-C语言解法- 缺失的第一个正整数
缺失的第一个正整数_牛客题霸_牛客网 (nowcoder.com)原创 2023-04-22 21:38:52 · 137 阅读 · 0 评论 -
牛客-C语言解法-数组中只出现一次的两个数字
一个整型数组里除了两个数字只出现一次,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。数据范围:数组长度 2≤n≤1000,数组中每个数的大小 0原创 2023-04-22 21:37:55 · 155 阅读 · 0 评论 -
牛客-C语言解法-二叉树的最大深度
给定一个节点数为n的无序单链表,对其按升序排序。数据范围: 0原创 2023-04-22 21:36:44 · 87 阅读 · 0 评论 -
牛客-C语言解法-合并k个已排序的链表
合并 k 个升序的链表并将结果作为一个升序的链表返回其头节点。数据范围:节点总数 0≤n≤5000,每个节点的val满足 ∣val∣原创 2023-04-22 21:35:59 · 151 阅读 · 0 评论 -
牛客-C语言解法-判断是不是二叉搜索树
给定一个二叉树根节点,请你判断这棵树是不是二叉搜索树。二叉搜索树满足每个节点的左子树上的所有节点均小于当前节点且右子树上的所有节点均大于当前节点。例:图1图2数据范围:节点数量满足 1≤n≤10^4 ,节点上的值满足 −2^31≤val≤2^31−1。原创 2023-04-22 21:34:59 · 207 阅读 · 0 评论 -
牛客-C语言解法-二叉树中和为某一值的路径(一)
给定一个二叉树root和一个值 sum ,判断是否有从根节点到叶子节点的节点值之和等于 sum 的路径。1.该题路径定义为从树的根结点开始往下一直到叶子结点所经过的结点2.叶子节点是指没有子节点的节点3.路径只能从父节点到子节点,不能从子节点到父节点4.总节点数目为n例如:给出如下的二叉树, sum=22,返回true,因为存在一条路径 5→4→11→2 的节点值之和为 22数据范围:1.树上的节点数满足 0≤n≤100002.每 个节点的值都满足 ∣val∣≤1000。原创 2023-04-22 21:33:19 · 54 阅读 · 0 评论 -
牛客-C语言解法-二叉树的最大深度
求给定二叉树的最大深度,深度是指树的根节点到任一叶子节点路径上节点的数量。最大深度是所有叶子节点的深度的最大值。(注:叶子节点是指没有子节点的节点。数据范围:0≤n≤100000,树上每个节点的val满足 ∣val∣≤100要求: 空间复杂度 O(1),时间复杂度 O(n)原创 2023-04-21 15:54:52 · 476 阅读 · 0 评论 -
牛客-C语言解法-二叉树的镜像
操作给定的二叉树,将其变换为源二叉树的镜像。数据范围:二叉树的节点数 0≤n≤1000 , 二叉树每个节点的值 0≤val≤1000要求: 空间复杂度 O(n)。本题也有原地操作,即空间复杂度 O(1) 的解法,时间复杂度 O(n)比如:源二叉树镜像二叉树。原创 2023-04-21 15:53:34 · 181 阅读 · 0 评论 -
牛客-C语言解法-按之字形顺序打印二叉树
给定一个二叉树,返回该二叉树的之字形层序遍历,(第一层从左向右,下一层从右向左,一直这样交替)数据范围: 0≤n≤1500,树上每个节点的val满足 ∣val∣原创 2023-04-21 15:52:03 · 132 阅读 · 0 评论 -
牛客-C语言解法-求二叉树的层序遍历
给定一个二叉树,返回该二叉树层序遍历的结果,(从左到右,一层一层地遍历)例如:给定的二叉树是{3,9,20,#,#,15,7},该二叉树层序遍历的结果是[3],[9,20],[15,7]提示:0原创 2023-04-21 15:51:03 · 104 阅读 · 0 评论 -
牛客-C语言解法-合并区间
给出一组区间,请合并所有重叠的区间。请保证合并后的区间按区间起点升序排列。数据范围:区间组数 0≤n≤2×10^5,区间内 的值都满足 0≤val≤2×10^5要求:空间复杂度 O(n),时间复杂度 O(nlogn)进阶:空间复杂度 O(val),时间复杂度O(val)原创 2023-04-21 15:50:00 · 226 阅读 · 0 评论 -
牛客-C语言解法-大数加法
以字符串的形式读入两个数字,编写一个函数计算它们的和,以字符串形式返回。数据范围:s.length,t.length≤100000,字符串仅由'0'~‘9’构成要求:时间复杂度 O(n)原创 2023-04-21 15:48:31 · 74 阅读 · 0 评论 -
牛客-C语言解法-验证IP地址
编写一个函数来验证输入的字符串是否是有效的 IPv4 或 IPv6 地址IPv4 地址由十进制数和点来表示,每个地址包含4个十进制数,其范围为 0 - 255, 用(".")分割。比如,172.16.254.1;同时,IPv4 地址内的数不会以 0 开头。比如,地址 172.16.254.01 是不合法的。IPv6 地址由8组16进制的数字来表示,每组表示 16 比特。这些组数字通过 (":")分割。原创 2023-04-21 15:47:21 · 540 阅读 · 0 评论 -
牛客-C语言解法-最长公共前缀
给你一个大小为 n 的字符串数组 strs ,其中包含n个字符串 , 编写一个函数来查找字符串数组中的最长公共前缀,返回这个公共前缀。数据范围: 0≤n≤5000, 0≤len(strsi)≤5000进阶:空间复杂度 O(1),时间复杂度 O(n∗len)原创 2023-04-17 21:53:46 · 548 阅读 · 0 评论 -
牛客-C语言刷题-字符串变形
对于一个长度为 n 字符串,我们需要对它做一些变形。首先这个字符串中包含着一些空格,就像"Hello World"一样,然后我们要做的是把这个字符串中由空格隔开的单词反序,同时反转每个字符的大小写。比如"Hello World"变形后就变成了"wORLD hELLO"。数据范围: 1≤n≤10^6 , 字符串中包括大写英文字母、小写英文字母、空格。进阶:空间复杂度 O(n) , 时间复杂度 O(n)原创 2023-04-17 21:52:03 · 197 阅读 · 0 评论 -
牛客-C语言解法-有效括号序列
给出一个仅包含字符'(',')','{','}','['和']',的字符串,判断给出的字符串是否是合法的括号序列括号必须以正确的顺序关闭,"()"和"()[]{}"都是合法的括号序列,但"(]"和"([)]"不合法。数据范围:字符串长度 0≤n≤10000要求:空间复杂度 O(n),时间复杂度 O(n)原创 2023-04-17 21:50:19 · 229 阅读 · 0 评论 -
牛客-C语言解法-删除有序链表中重复的元素-II
给出一个升序排序的链表,删除链表中的所有重复出现的元素,只保留原链表中只出现一次的元素。例如:给出的链表为1→2→3→3→4→4→5 , 返回1→2→5给出的链表为1→1→1→2→3 , 返回2→3数据范围:链表长度 0≤n≤10000,链表中的值满足 ∣val∣≤1000要求:空间复杂度 O(n),时间复杂度 O(n)进阶:空间复杂度 O(1),时间复杂度 O(n)原创 2023-04-17 21:48:27 · 176 阅读 · 0 评论 -
牛客-C语言刷题-删除有序链表中重复的元素-I
删除给出链表中的重复元素(链表中元素从小到大有序),使链表中的所有元素都只出现一次例如:给出的链表为1→1→2 ,返回1→2给出的链表为1→1→2→3→3 ,返回1→2→3数据范围:链表长度满足 0≤n≤100,链表中任意节点的值满足 ∣val∣≤100进阶:空间复杂度 O(1),时间复杂度 O(n)原创 2023-04-17 21:47:01 · 141 阅读 · 0 评论 -
牛客-c语言刷题-链表的奇偶重排
给定一个单链表,请设定一个函数,将链表的奇数位节点和偶数位节点分别放在一起,重排后输出。数据范围:节点数量满足0≤n≤10^5,节点中的值都满足 0≤val≤1000。要求:空间复杂度 O(n),时间复杂度 O(n)注意是节点的编号而非节点的数值。原创 2023-04-16 15:15:28 · 219 阅读 · 0 评论 -
牛客-c语言刷题-比较版本号
例如,"1.1"的版本号小于"1.1.1"。因为"1.1"的版本号相当于"1.1.0",第3位修订号的下标为0,小于1。版本号是由修订号组成,修订号与修订号之间由一个"."连接。1个修订号可能有多位数字组成,修订号可能包含前导0,且是合法的。一. 比较版本号时,请按从左到右的顺序依次比较它们的修订号。version1 和 version2 的修订号不会超过int的表达范围,即不超过 32 位整数 的范围。修订号从左到右编号,下标从0开始,最左边的修订号下标为0,下一个修订号下标为1,以此类推。原创 2023-04-16 15:14:07 · 172 阅读 · 0 评论 -
牛客-c语言刷题-寻找峰值
给定一个长度为n的数组nums,请你找到峰值并返回其索引。数组可能包含多个峰值,在这种情况下,返回任何一个所在位置即可。3.对于所有有效的 i 都有 nums[i]!= nums[i + 1]1.峰值元素是指其值严格大于左右相邻值的元素。严格大于即不能有等于。2.假设 nums[-1] = nums[n] = −∞。4.你可以使用O(logN)的时间复杂度实现此问题吗?原创 2023-04-16 15:12:27 · 290 阅读 · 0 评论 -
牛客-c语言刷题-二维数组中的查找
在一个二维数组array中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。数据范围:矩阵的长宽满足0≤n,m≤500 , 矩阵中的值满足 0≤val≤10^9。进阶:空间复杂度O(1) ,时间复杂度 O(n+m)给定 target = 3,返回 false。给定 target = 7,返回 true。原创 2023-04-16 15:10:39 · 123 阅读 · 0 评论 -
牛客-c语言刷题-判断一个链表是否为回文结构
数据范围: 链表节点数 0≤n≤105,链表中每个节点的值满足 ∣val∣≤107。给定一个链表,请判断该链表是否为回文结构。回文是指该字符串正序逆序完全一致。原创 2023-04-16 15:09:03 · 140 阅读 · 0 评论 -
牛客-c语言刷题-删除链表的倒数第n个节点
数据范围: 链表长度 0≤n≤1000,链表中任意节点的值满足 0≤val≤100。删除了链表的倒数第 n 个节点之后,链表变为1→2→3→5。给定一个链表,删除链表的倒数第 n 个节点并返回链表的头指针。要求:空间复杂度 O(1),时间复杂度 O(n)给出的链表为: 1→2→3→4→5 , n=2.题目保证 n 一定是有效的。原创 2023-04-15 11:51:57 · 145 阅读 · 0 评论 -
牛客-c语言刷题- 链表相加(二)
例如:链表 1 为 9->3->7,链表 2 为 6->3,最后生成新的结果链表为 1->0->0->0。假设链表中每一个节点的值都在 0 - 9 之间,那么链表整体就可以代表一个整数。数据范围: 0≤n,m≤1000000,链表任意值 0≤val≤9。给定两个这种链表,请生成代表两个整数相加值的结果链表。要求:空间复杂度 O(n),时间复杂度 O(n)原创 2023-04-15 11:55:24 · 125 阅读 · 0 评论 -
牛客-c语言刷题-两个链表的第一个公共结点
输入分为是3段,第一段是第一个链表的非公共部分,第二段是第二个链表的非公共部分,第三段是第一个链表和第二个链表的公共部分。后台会将这3个参数组装为两个链表,并将这两个链表对应的头节点传入到函数FindFirstCommonNode里面,用户得到的输入只有pHead1和pHead2。(注意因为传入数据是链表,所以错误测试数据的提示是用其他方式显示的,保证传入数据是正确的)返回传入的pHead1和pHead2的第一个公共结点,后台会打印以该节点为头节点的链表。数据范围: n≤1000。原创 2023-04-15 11:53:27 · 74 阅读 · 0 评论 -
牛客-c语言刷题-链表中倒数最后k个结点
其中蓝色部分为该链表的最后2个结点,所以返回倒数第2个结点(也即结点值为4的结点)即可,系统会打印后面所有的节点来比较。输入一个长度为 n 的链表,设链表中的元素的值为 ai ,返回该链表中倒数第k个节点。数据范围:0≤n≤10^5,0≤ai≤10^9,0≤k≤10^9。如果该链表长度小于k,请返回一个长度为 0 的链表。要求:空间复杂度 O(n),时间复杂度 O(n)进阶:空间复杂度 O(1),时间复杂度 O(n)原创 2023-04-15 11:47:08 · 67 阅读 · 0 评论 -
牛客-c语言刷题-合并两个排序的链表
输入两个递增的链表,单个链表的长度为n,合并这两个链表并使新链表中的节点仍然是递增排序的。数据范围: 0≤n≤1000,−1000≤节点值≤1000。要求:空间复杂度 O(1),时间复杂度 O(n)原创 2023-04-14 22:45:44 · 112 阅读 · 0 评论 -
牛客-c语言刷题-链表中的节点每k个一组翻转
牛客刷题原创 2023-04-14 22:43:05 · 83 阅读 · 0 评论 -
牛客-c语言刷题-判断链表中是否有环
牛客刷题题解原创 2023-04-14 22:39:51 · 103 阅读 · 0 评论