
牛客
Zero_979
计算机科学与技术硕士
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
恶补SQL中)牛客SQL题(二)
【代码】恶补SQL中)牛客SQL题(二)原创 2023-03-20 16:49:49 · 190 阅读 · 0 评论 -
恶补SQL中)牛客SQL题
【代码】恶补SQL中)牛客SQL题。原创 2023-03-15 22:05:56 · 1195 阅读 · 0 评论 -
【剑指Offer】JZ50 第一个只出现一次的字符
在一个长为 字符串中找到第一个只出现一次的字符,并返回它的位置, 如果没有则返回 -1(需要区分大小写).(从0开始计数)数据范围:0 \le n \le 100000≤n≤10000,且字符串只有字母组成。要求:空间复杂度 O(n)O(n),时间复杂度 O(n)O(n)...原创 2022-08-16 18:48:47 · 356 阅读 · 0 评论 -
【剑指Offer】JZ43 整数中1出现的次数(从1到n整数中1出现的次数)
例如, 1~13 中包含 1 的数字有 1 、 10 、 11 、 12 、 13 因此共出现 6 次。进阶:空间复杂度 O(1) \O(1) ,时间复杂度 O(lognn) \O(lognn)输入一个整数 n ,求 1~n 这 n 个整数的十进制表示中 1 出现的次数。数据范围: 1 \le n \le 30000 \1≤n≤30000。注意:11 这种情况算两次。...原创 2022-08-16 18:41:30 · 247 阅读 · 0 评论 -
【剑指Offer】BM49 表达式求值
数据范围:0\le |s| \le 1000≤∣s∣≤100,保证计算结果始终在整型范围内。要求:空间复杂度: O(n)O(n),时间复杂度 O(n)O(n)请写一个整数计算器,支持加减乘三种运算和括号。之前一篇写了,这题也是套用了那题的代码。...原创 2022-08-04 13:23:49 · 269 阅读 · 0 评论 -
【剑指Offer】JZ28 对称的二叉树
题目地址:牛客网描述给定一棵二叉树,判断其是否是自身的镜像(即:是否对称)例如: 下面这棵二叉树是对称的下面这棵二叉树不对称。数据范围:节点数满足0≤n≤1000,节点上的值满足|val| ≤1000要求:空间复杂度 O(n),时间复杂度 O(n)备注:你可以用递归和迭代两种方法解决这个问题示例1输入:{1,2,2,3,4,4,3}返回值:true示例2输入:{...原创 2022-03-19 21:57:19 · 747 阅读 · 0 评论 -
【剑指Offer】JZ53 数字在升序数组中出现的次数
原文地址:牛客网描述给定一个长度为 n 的非降序数组和一个非负数整数 k ,要求统计 k 在数组中出现的次数数据范围:0≤k≤100,数组中每个元素的值满足≤val≤100要求:空间复杂度O(1),时间复杂度O(logn)示例1输入:[1,2,3,3,3,3,4,5],3返回值:4示例2输入:[1,3,4,5],6返回值:0思路:因为时间复杂度是O(logn),所以用二分查找。代码:class Solution {p..原创 2022-03-13 20:32:26 · 872 阅读 · 0 评论 -
【剑指Offer】JZ54 二叉搜索树的第k个节点
原文地址:牛客网描述给定一棵结点数为n 二叉搜索树,请找出其中的第 k 小的TreeNode结点值。1.返回第k小的节点值即可2.不能查找的情况,如二叉树为空,则返回-1,或者k大于n等等,也返回-13.保证n个节点的值不一样数据范围:0≤n≤1000,0≤k≤1000,树上每个结点的值满足0 ≤val≤1000进阶:空间复杂度 O(n),时间复杂度O(n)如输入{5,3,7,2,4,6,8},3时,二叉树{5,3,7,2,4,6,8}如下图所示:该二叉树所有节点按..原创 2022-03-12 21:39:13 · 194 阅读 · 0 评论 -
【剑指Offer】JZ77 按之字形顺序打印二叉树
题目地址:牛客网描述给定一个二叉树,返回该二叉树的之字形层序遍历,(第一层从左向右,下一层从右向左,一直这样交替)数据范围:0n≤1500,树上每个节点的val满足|val|<=100要求:空间复杂度:O(n),时间复杂度:O(n)例如:给定的二叉树是{1,2,3,#,#,4,5}该二叉树之字形层序遍历的结果是[[1],[3,2],[4,5]]示例1输入:{1,2,3,#,#,4,5}返回值:[[1],[3,2],[4,5]].原创 2022-03-06 17:01:55 · 182 阅读 · 0 评论 -
【剑指Offer】JZ17 打印从1到最大的n位数
题目地址:牛客网描述输入数字n,按顺序打印出从 1 到最大的 n 位十进制数。比如输入 3,则打印出 1、2、3 一直到最大的 3 位数 999。1. 用返回一个整数列表来代替打印2. n 为正整数,0 < n <= 5示例1输入:1返回值:[1,2,3,4,5,6,7,8,9]代码:class Solution {public: /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 .原创 2022-03-05 18:06:42 · 415 阅读 · 0 评论 -
【剑指Offer】JZ82 二叉树中和为某一值的路径(一)
题目地址:牛客网题目:描述给定一个二叉树root和一个值 sum ,判断是否有从根节点到叶子节点的节点值之和等于 sum 的路径。1.该题路径定义为从树的根结点开始往下一直到叶子结点所经过的结点2.叶子节点是指没有子节点的节点3.路径只能从父节点到子节点,不能从子节点到父节点4.总节点数目为n例如:给出如下的二叉树,sum=22,返回true,因为存在一条路径5→4→11→2的节点值之和为 22数据范围:1.树上的节点数满足0≤n≤10000..原创 2022-03-05 17:56:54 · 198 阅读 · 0 评论 -
【剑指Offer】JZ18 删除链表的节点
题目地址:删除链表的节点_牛客题霸_牛客网题目:描述给定单向链表的头指针和一个要删除的节点的值,定义一个函数删除该节点。返回删除后的链表的头节点。1.此题对比原题有改动2.题目保证链表中节点的值互不相同3.该题只会输出返回的链表和结果做对比,所以若使用 C 或 C++ 语言,你不需要 free 或 delete 被删除的节点数据范围:0<=链表节点值<=100000<=链表长度<=10000示例1输入:{2,5,1,9},原创 2021-11-12 13:43:43 · 197 阅读 · 0 评论 -
【剑指Offer】JZ22 链表中倒数最后k个结点
题目地址:链表中倒数最后k个结点_牛客题霸_牛客网题目:描述输入一个长度为 n 的链表,设链表中的元素的值为 ai,返回该链表中倒数第k个节点。如果该链表长度小于k,请返回一个长度为 0 的链表。数据范围:0 \leq n \leq 10^50≤n≤105,0 \leq a_i \leq 10^90≤ai≤109,0 \leq k \leq 10^90≤k≤109要求:空间复杂度O(n)O(n),时间复杂度O(n)O(n)进阶:空间复杂度O(1)O(1),时...原创 2021-11-12 13:36:40 · 702 阅读 · 0 评论 -
【剑指Offer】JZ76 删除链表中重复的结点
题目地址:删除链表中重复的结点_牛客题霸_牛客网题目:描述在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表 1->2->3->3->4->4->5 处理后为 1->2->5数据范围:链表长度满足n∈[1-1000],链表中的值满足进阶:空间复杂度 O(n),时间复杂度例如输入{1,2,3,3,4,4,5}时,对应的输出为{1,2,5},对应的输入输出链表如...原创 2021-11-05 23:07:34 · 192 阅读 · 0 评论 -
【剑指Offer】JZ23链表中环的入口结点
题目地址:链表中环的入口结点_牛客题霸_牛客网题目:描述给一个长度为n链表,若其中包含环,请找出该链表的环的入口结点,否则,返回null。数据范围:n\le10000n≤10000节点值范围:[1,10000]要求:空间复杂度O(1)O(1),时间复杂度O(n)O(n)例如,输入{1,2},{3,4,5}时,对应的环形链表如下图所示:可以看到环的入口结点的结点值为3,所以返回结点值为3的结点。输入描述:输入分为2段,第一段是入环前的链表部分,第二段...原创 2021-11-05 20:27:20 · 217 阅读 · 2 评论 -
【剑指Offer】JZ52两个链表的第一个公共结点
题目地址:两个链表的第一个公共结点_牛客题霸_牛客网题目:描述输入两个无环的单向链表,找出它们的第一个公共结点,如果没有公共节点则返回空。(注意因为传入数据是链表,所以错误测试数据的提示是用其他方式显示的,保证传入数据是正确的)数据范围:n \le 1000n≤1000要求:空间复杂度O(1)O(1),时间复杂度O(n)O(n)例如,输入{1,2,3},{4,5},{6,7}时,两个无环的单向链表的结构如下图所示:可以看到它们的第一个公共结点的结点值为6,所以返回结点值为...原创 2021-11-04 16:13:24 · 212 阅读 · 1 评论 -
【剑指Offer】JZ24反转链表(C++)
题目地址:反转链表_牛客题霸_牛客网题目:描述给定一个单链表的头结点pHead,长度为n,反转该链表后,返回新链表的表头。数据范围:n\leq1000n≤1000要求:空间复杂度O(1)O(1),时间复杂度O(n)O(n)。如当输入链表{1,2,3}时,经反转后,原链表变为{3,2,1},所以对应的输出为{3,2,1}。以上转换过程如下图所示:示例1输入:{1,2,3}返回值:{3,2,1}示例2输入:{}返回...原创 2021-11-04 13:17:35 · 436 阅读 · 0 评论 -
【剑指Offer】JZ3从尾到头打印链表 C++
题目地址:牛客网题目:输入一个链表,按链表从尾到头的顺序返回一个ArrayList。示例1输入{67,0,24,58}返回值[58,24,0,67]思路:先把链表放进栈里,利用栈后进先出的性质,装到vector里。最后输出vector。代码:/*** struct ListNode {* int val;* struct ListNode *next;* ListNode(int x) :* val原创 2021-03-18 20:47:13 · 180 阅读 · 4 评论 -
【练习】2020校招4399游戏开发岗笔试编程题 C++(4)
题目地址:牛客网第一题一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第n次落地时,共经过多少米?第n次反弹多高?(n<=10)思路: 模拟。用两个值分别记录小球总路线长度和每次弹起来的高度。代码:#include<iostream>#include<cstdio>using namespace std;int main(){ int n; while(cin>>n) { doub原创 2021-03-16 22:06:39 · 3063 阅读 · 4 评论 -
【剑指Offer】JZ1二维数组中的查找 C++
题目地址:牛客网题目:在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。示例1输入7,[[1,2,8,9],[2,4,9,12],[4,7,10,13],[6,8,11,15]]返回值true思路:从左下角或者右上角开始找,我这里选的是左下角,于是比target大的话就向上,比它小就向右。代码:class Solution {publi原创 2021-03-13 16:39:22 · 184 阅读 · 0 评论 -
【华为机试题库】HJ1字符串最后一个单词的长度 C++
题目地址:牛客网题目:计算字符串最后一个单词的长度,单词以空格隔开。输入描述:输入一行,代表要计算的字符串,非空,长度小于5000。输出描述:输出一个整数,表示输入字符串最后一个单词的长度。示例1输入hello nowcoder输出8思路:随便点进去看正好看到这题,就写了一下。字符串倒着读就行,遇到空就可以输出。代码:#include<iostream>#include<cstring>#include<string.h>原创 2021-03-13 15:16:05 · 333 阅读 · 0 评论 -
【剑指Offer】JZ27字符串的排列 C++(STL库全排列)
题目地址:牛客网题目:输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则按字典序打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。输入描述:输入一个字符串,长度不超过9(可能有字符重复),字符只包括大小写字母。示例1输入“ab”返回值[“ab”,“ba”]思路:一看到题目就想到了在紫书里学的STL库里的全排列。但是因为输入的是string,所以先把它转到char数组里,但是输出数组又会出错,所以输出时再转原创 2021-03-12 22:27:38 · 145 阅读 · 0 评论 -
【剑指Offer】JZ22从上往下打印二叉树 C++
题目地址:牛客网题目:从上往下打印出二叉树的每个节点,同层节点从左至右打印。示例1输入{5,4,#,3,#,2,#,1}返回值[5,4,3,2,1]思路:层次遍历。代码:/*struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(NULL) { }};*/class Soluti原创 2021-03-12 21:59:26 · 203 阅读 · 0 评论 -
【剑指Offer】JZ39平衡二叉树 C++
题目地址:牛客网题目:输入一棵二叉树,判断该二叉树是否是平衡二叉树。在这里,我们只需要考虑其平衡性,不需要考虑其是不是排序二叉树平衡二叉树(Balanced Binary Tree),具有以下性质:它是一棵空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树。示例1输入{1,2,3,4,5,6,7}返回值true思路:用之前一题求二叉树深度的代码作为函数,可以求结点的高度。写了一串判断语句,因为懒得优化了。。如果二叉树是空的直接返回true。原创 2021-03-12 20:02:12 · 165 阅读 · 0 评论 -
【剑指Offer】JZ38二叉树的深度 C++
题目地址:牛客网题目:输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。示例1输入{1,2,3,4,5,#,6,#,#,7}返回值4思路:就是求二叉树一共有几层,用递归的方法就可以求出。代码:/*struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : val(x),原创 2021-03-12 18:14:30 · 192 阅读 · 0 评论 -
【剑指Offer】JZ13调整数组顺序使奇数位于偶数前面 C++
题目地址:牛客网题目:输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。示例1输入[1,2,3,4]返回值[1,3,2,4]思路:建两个vector,奇数放一个,偶数放一个,再把偶数放在奇数后面。代码:class Solution {public: /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可原创 2021-03-11 22:47:46 · 220 阅读 · 3 评论 -
【剑指Offer】JZ50数组中重复的数字 C++
题目地址:牛客网题目:在一个长度为n的数组里的所有数字都在0到n-1的范围内。 数组中某些数字是重复的,但不知道有几个数字是重复的。也不知道每个数字重复几次。请找出数组中第一个重复的数字。 例如,如果输入长度为7的数组[2,3,1,0,2,5,3],那么对应的输出是第一个重复的数字2。没有重复的数字返回-1。示例1输入[2,3,1,0,2,5,3]返回值2思路:也是就遍历……通过率高的题目都挺简单的。代码:class Solution {public: /**原创 2021-03-11 22:27:40 · 250 阅读 · 0 评论 -
【剑指Offer】JZ2替换空格 C++
题目地址:牛客网题目:请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。示例1输入“We Are Happy”返回值“We%20Are%20Happy”思路:发现正则表达式用不了,所以就直接遍历一遍了。代码:class Solution {public: /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 *原创 2021-03-11 22:17:20 · 202 阅读 · 0 评论 -
【剑指Offer】JZ30连续子数组的最大和 C++
题目地址:牛客网题目:输入一个整型数组,数组里有正数也有负数。数组中的一个或连续多个整数组成一个子数组。求所有子数组的和的最大值。要求时间复杂度为 O(n).示例1输入[1,-2,3,10,-4,7,2,-5]返回值18说明输入的数组为{1,-2,3,10,—4,7,2,一5},和最大的子数组为{3,10,一4,7,2},因此输出为该子数组的和 18。思路:动态规划。注意有负数,初始值设成很小的负数。代码:class Solution {public: int原创 2021-03-09 23:24:52 · 135 阅读 · 2 评论 -
【剑指Offer】JZ28数组中出现次数超过一半的数字 C++
题目地址:牛客网题目:数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0。示例1输入[1,2,3,2,2,2,5,4,2]返回值2思路:直接从前往后遍历,遇到超过一半的直接return。复杂度O(n)。代码:class Solution {public: int MoreThanHalfNum_Solution(原创 2021-03-08 20:04:55 · 165 阅读 · 4 评论 -
【剑指Offer】JZ16合并两个排序的链表
题目地址:牛客网题目:输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。示例1输入{1,3,5},{2,4,6}返回值{1,2,3,4,5,6}思路:因为原本两个链表就是递增的,所以只要遍历就可以了。坑点在于,C++新建链表要new开辟空间。代码:/*struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL)原创 2021-03-07 19:59:24 · 128 阅读 · 0 评论 -
【剑指Offer】JZ5用两个栈实现队列
题目地址:牛客网题目:用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。思路:因为栈是一头进出,队列是一头进一头出,所以只要第一个栈进,第二个栈接受第一个栈出来的元素再弹出,就能模拟队列。代码:class Solution{public: void push(int node) { stack1.push(node); } int pop() { while(!stack1.empty())原创 2021-03-06 16:39:07 · 171 阅读 · 0 评论 -
【剑指Offer】JZ60把二叉树打印成多行
题目地址:牛客网题目:从上到下按层打印二叉树,同一层结点从左至右输出。每一层输出一行。示例1输入{8,6,10,5,7,9,11}返回值[[8],[6,10],[5,7,9,11]]思路:普普通通层次遍历。原本输出挺麻烦的,但是看到一个大佬写的,原来可以vector套vector输出,很简洁。直接看代码吧。代码:/*struct TreeNode { int val; struct TreeNode *left; struct TreeNode *r原创 2021-03-05 16:22:31 · 176 阅读 · 0 评论 -
【剑指Offer】JZ6旋转数组的最小数字
题目地址:牛客网题目:把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。示例1输入[3,4,5,1,2]返回值1思路:题目上写着本题知识点“二分”,所以就用二分写了。三种情况,一种是类似于4567123,其中mid>first,mid>last,这时候向右边寻找。第二种类似于6712345,其中mid<first,mid&原创 2021-03-05 15:27:24 · 173 阅读 · 0 评论 -
【剑指Offer】JZ62二叉搜索树的第K个结点
题目地址:牛客网题目:给定一棵二叉搜索树,请找出其中的第k小的TreeNode结点。示例1输入{5,3,7,2,4,6,8},3返回值{4}说明按结点数值大小顺序第三小结点的值为4思路:中序遍历二叉搜索树,第k小的结点是中序遍历的第k个结点。代码:/*struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) :原创 2021-03-05 14:18:29 · 152 阅读 · 0 评论 -
【剑指Offer】JZ8跳台阶
题目地址:牛客网题目:一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。示例1输入 1返回值 1示例2输入 4返回值 5思路:在草稿纸上计算前4种台阶发现是1 2 3 5,由此推算规律是dp[i]=dp[i-2]+dp[i-1].代码:class Solution {public: int jumpFloor(int number) { int dp[10001];原创 2021-03-05 13:45:35 · 112 阅读 · 0 评论 -
【剑指Offer】JZ9变态跳台阶
题目地址:牛客网题目描述:一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。示例1输入3返回值4题目思路:找规律,在草稿纸上推一下,到第四个的时候就知道规律是2的n-1次方了。代码:class Solution {public: int jumpFloorII(int number) { long long int sum=1; for(int i=0;i&原创 2021-02-10 17:35:53 · 133 阅读 · 0 评论 -
【剑指Offer】JZ7斐波那契数列
题目地址:[牛客网](https://www.nowcoder.com/practice/c6c7742f5ba7442aada113136ddea0c3?tpId=13&&tqId=11160&rp=1&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking)题目描述:大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0,第1项是1)。原创 2021-01-05 19:13:38 · 144 阅读 · 0 评论 -
【考研每日一题42】素数判定(C++)
原题地址:牛客网题目描述给定一个数n,要求判断其是否为素数(0,1,负数都是非素数)。输入描述:测试数据有多组,每组输入一个数n。输出描述:对于每组输入,若是素数则输出yes,否则输入no。示例1输入13输出yes代码:#include<iostream>#include<cmath>using names...原创 2020-04-30 21:48:35 · 556 阅读 · 0 评论 -
【考研每日一题41】买房子(C++)
原题地址:牛客网题目描述 某程序员开始工作,年薪N万,他希望在中关村公馆买一套60平米的房子,现在价格是200万,假设房子价格以每年百分之K增长,并且该程序员未来年薪不变,且不吃不喝,不用交税,每年所得N万全都积攒起来,问第几年能够买下这套房子(第一年房价200万,收入N万)输入描述: 有多行,每行两个整数N(10<=N<=50), K(1<=K&l...原创 2020-04-29 15:51:23 · 5422 阅读 · 0 评论