摘要: 给你一根长度为n的绳子,请把绳子剪成整数长的m段(m、n都是整数,n>1并且m>1),每段绳子的长度记为k[0],k[1],...,k[m]。请问k[0]xk[1]x...xk[m]可能的最大乘积是多少?例如,当绳子的长度是8时,我们把它剪成长度分别为2、3、3的三段,此时得到的最大乘积是18。 输 阅读全文
posted @ 2020-06-15 21:19 Stephen~Jixing 阅读(195) 评论(0) 推荐(0) 编辑
摘要: 题目描述 地上有一个m行和n列的方格。一个机器人从坐标0,0的格子开始移动,每一次只能向左,右,上,下四个方向移动一格,但是不能进入行坐标和列坐标的数位之和大于k的格子。 例如,当k为18时,机器人能够进入方格(35,37),因为3+5+3+7 = 18。但是,它不能进入方格(35,38),因为3+ 阅读全文
posted @ 2020-06-15 21:03 Stephen~Jixing 阅读(185) 评论(0) 推荐(0) 编辑
摘要: 题目描述 请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径。路径可以从矩阵中的任意一个格子开始,每一步可以在矩阵中向左,向右,向上,向下移动一个格子。如果一条路径经过了矩阵中的某一个格子,则该路径不能再进入该格子。 例如 矩阵中包含一条字符串"bcced"的路径,但是矩阵中 阅读全文
posted @ 2020-06-15 21:01 Stephen~Jixing 阅读(156) 评论(0) 推荐(0) 编辑
摘要: 题目描述 如何得到一个数据流中的中位数?如果从数据流中读出奇数个数值,那么中位数就是所有数值排序之后位于中间的数值。如果从数据流中读出偶数个数值,那么中位数就是所有数值排序之后中间两个数的平均值。我们使用Insert()方法读取数据流,使用GetMedian()方法获取当前读取数据的中位数。 创建两 阅读全文
posted @ 2020-06-15 20:57 Stephen~Jixing 阅读(145) 评论(0) 推荐(0) 编辑
摘要: 题目描述 给定一棵二叉搜索树,请找出其中的第k小的结点。例如, (5,3,7,2,4,6,8) 中,按结点数值大小顺序第三小结点的值为4。 先走到最小的节点,然后一步步往后退 直到计数为0 /* struct TreeNode { int val; struct TreeNode *left; st 阅读全文
posted @ 2020-06-15 20:50 Stephen~Jixing 阅读(132) 评论(0) 推荐(0) 编辑
摘要: 题目描述 请实现两个函数,分别用来序列化和反序列化二叉树 二叉树的序列化是指:把一棵二叉树按照某种遍历方式的结果以某种格式保存为字符串,从而使得内存中建立起来的二叉树可以持久保存。序列化可以基于先序、中序、后序、层序的二叉树遍历方式来进行修改,序列化的结果是一个字符串,序列化时通过 某种符号表示空节 阅读全文
posted @ 2020-06-15 20:48 Stephen~Jixing 阅读(92) 评论(0) 推荐(0) 编辑
摘要: 题目描述 给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回。注意,树中的结点不仅包含左右子结点,同时包含指向父结点的指针。 如果当前节点有右子树,那么就是往右再一直往左就找到了 如果当前节点右子树为空,那么往上找父节点,一直找到当前节点为父节点的左子树为止 另一种情况就是当前节 阅读全文
posted @ 2020-06-15 20:42 Stephen~Jixing 阅读(175) 评论(0) 推荐(0) 编辑
摘要: 题目描述 在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表1->2->3->3->4->4->5 处理后为 1->2->5 注意如果是头结点的判断 另外,每次->next的时候都需要判断当前节点是否为空 /* struct ListNode 阅读全文
posted @ 2020-06-15 20:35 Stephen~Jixing 阅读(112) 评论(0) 推荐(0) 编辑
摘要: 题目描述 请实现一个函数用来判断字符串是否表示数值(包括整数和小数)。例如,字符串"+100","5e2","-123","3.1416"和"-1E-16"都表示数值。 但是"12e","1a3.14","1.2.3","+-5"和"12e+4.3"都不是。 1.判断是否有e或者E 2.+或者-号如 阅读全文
posted @ 2020-06-15 20:29 Stephen~Jixing 阅读(224) 评论(0) 推荐(0) 编辑
摘要: 题目描述 请实现一个函数用来匹配包括'.'和'*'的正则表达式。模式中的字符'.'表示任意一个字符,而'*'表示它前面的字符可以出现任意次(包含0次)。 在本题中,匹配是指字符串的所有字符匹配整个模式。例如,字符串"aaa"与模式"a.a"和"ab*ac*a"匹配,但是与"aa.a"和"ab*a"均 阅读全文
posted @ 2020-06-15 20:24 Stephen~Jixing 阅读(209) 评论(0) 推荐(0) 编辑
摘要: 题目描述 写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。 两个数相加=进位+原始位 即a+b = a^b + (a&b)<<1 class Solution { /* a+b = 进位值 + 不进位的和 */ public: int Add(int num1, int 阅读全文
posted @ 2020-06-15 20:18 Stephen~Jixing 阅读(176) 评论(0) 推荐(0) 编辑
摘要: 题目描述 求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。 运用&& n-- 到最后条件前面为0之后就不会计算后面的 class Solution { public: int Sum_Solution(in 阅读全文
posted @ 2020-06-15 20:12 Stephen~Jixing 阅读(122) 评论(0) 推荐(0) 编辑
摘要: 题目描述 牛客最近来了一个新员工Fish,每天早晨总是会拿着一本英文杂志,写些句子在本子上。同事Cat对Fish写的内容颇感兴趣,有一天他向Fish借来翻看,但却读不懂它的意思。例如,“student. a am I”。后来才意识到,这家伙原来把句子单词的顺序翻转了,正确的句子应该是“I am a 阅读全文
posted @ 2020-06-15 20:06 Stephen~Jixing 阅读(200) 评论(0) 推荐(0) 编辑
摘要: 题目描述 小明很喜欢数学,有一天他在做数学作业时,要求计算出9~16的和,他马上就写出了正确答案是100。但是他并不满足于此,他在想究竟有多少种连续的正数序列的和为100(至少包括两个数)。没多久,他就得到另一组连续正数和为100的序列:18,19,20,21,22。现在把问题交给你,你能不能也很快 阅读全文
posted @ 2020-06-15 19:59 Stephen~Jixing 阅读(186) 评论(0) 推荐(0) 编辑
摘要: 题目描述 一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。 注意赋值 和一些边界条件判断就可以 class Solution { public: void FindNumsAppearOnce(vector<int> data,int* num1,int 阅读全文
posted @ 2020-06-15 13:28 Stephen~Jixing 阅读(109) 评论(0) 推荐(0) 编辑
摘要: 题目描述 输入两个链表,找出它们的第一个公共结点。(注意因为传入数据是链表,所以错误测试数据的提示是用其他方式显示的,保证传入数据是正确的) 因为公共节点之后的数据都是一样的,所以如果两个链表不一样长,如果存在公共尾,那么长的链表前一段一定是不匹配的 /* struct ListNode { int 阅读全文
posted @ 2020-06-15 13:19 Stephen~Jixing 阅读(186) 评论(0) 推荐(0) 编辑
摘要: 题目描述 在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数P。并将P对1000000007取模的结果输出。 即输出P%1000000007 class Solution { public: int InversePairs(v 阅读全文
posted @ 2020-06-15 13:10 Stephen~Jixing 阅读(126) 评论(0) 推荐(0) 编辑
摘要: 题目描述 把只包含质因子2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因为它包含质因子7。 习惯上我们把1当做是第一个丑数。求按从小到大的顺序的第N个丑数。 如果用一个个数检测,时间复杂度高,通不过 需要用累乘的方法,用已有的丑数得到后面的丑数,直到第N个 每一个 阅读全文
posted @ 2020-06-15 11:35 Stephen~Jixing 阅读(125) 评论(0) 推荐(0) 编辑
摘要: 题目描述 输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。 先将数组的元素排序(按字符序排) 然后从头到尾连接就可以 class Solution { public: st 阅读全文
posted @ 2020-06-15 11:31 Stephen~Jixing 阅读(103) 评论(0) 推荐(0) 编辑
摘要: 题目描述 HZ偶尔会拿些专业问题来忽悠那些非计算机专业的同学。今天测试组开完会后,他又发话了:在古老的一维模式识别中,常常需要计算连续子向量的最大和,当向量全为正数的时候,问题很好解决。但是,如果向量中包含负数,是否应该包含某个负数,并期望旁边的正数会弥补它呢?例如:{6,-3,-2,7,-15,1 阅读全文
posted @ 2020-06-15 11:03 Stephen~Jixing 阅读(99) 评论(0) 推荐(0) 编辑