troubleasy

导航

 

2020年5月29日

摘要: 题目描述 给你一根长度为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的三段,此时得到的最大乘积是 阅读全文
posted @ 2020-05-29 17:57 troubleasy 阅读(144) 评论(0) 推荐(0) 编辑
 
摘要: 题目描述 地上有一个m行和n列的方格。一个机器人从坐标0,0的格子开始移动,每一次只能向左,右,上,下四个方向移动一格,但是不能进入行坐标和列坐标的数位之和大于k的格子。 例如,当k为18时,机器人能够进入方格(35,37),因为3+5+3+7 = 18。但是,它不能进入方格(35,38),因为3+ 阅读全文
posted @ 2020-05-29 17:56 troubleasy 阅读(85) 评论(0) 推荐(0) 编辑
 
摘要: 请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径。 路径可以从矩阵中的任意一个格子开始,每一步可以在矩阵中向左,向右,向上,向下移动一个格子。如果一条路径经过了矩阵中的某一个格子,则该路径不能再进入该格子。 例如四行四列矩阵【abcesfcsadee】矩阵中包含一条字符串" 阅读全文
posted @ 2020-05-29 17:47 troubleasy 阅读(122) 评论(0) 推荐(0) 编辑
 
摘要: 题目描述 给定一个数组和滑动窗口的大小,找出所有滑动窗口里数值的最大值。例如,如果输入数组{2,3,4,2,6,2,5,1}及滑动窗口的大小3,那么一共存在6个滑动窗口,他们的最大值分别为{4,4,6,6,6,5}; 针对数组{2,3,4,2,6,2,5,1}的滑动窗口有以下6个: {[2,3,4] 阅读全文
posted @ 2020-05-29 17:43 troubleasy 阅读(101) 评论(0) 推荐(0) 编辑
 
摘要: 题目描述 如何得到一个数据流中的中位数?如果从数据流中读出奇数个数值,那么中位数就是所有数值排序之后位于中间的数值。如果从数据流中读出偶数个数值,那么中位数就是所有数值排序之后中间两个数的平均值。我们使用Insert()方法读取数据流,使用GetMedian()方法获取当前读取数据的中位数。 cla 阅读全文
posted @ 2020-05-29 17:20 troubleasy 阅读(108) 评论(0) 推荐(0) 编辑
 
摘要: 题目描述 给定一棵二叉搜索树,请找出其中的第k小的结点。例如, (5,3,7,2,4,6,8) 中,按结点数值大小顺序第三小结点的值为4。 思路:中序遍历第k个节点 TreeNode* KthNode(TreeNode* pRoot, int k) { //中序遍历 int count=0; Tre 阅读全文
posted @ 2020-05-29 17:19 troubleasy 阅读(114) 评论(0) 推荐(0) 编辑
 
摘要: 题目描述 请实现两个函数,分别用来序列化和反序列化二叉树 二叉树的序列化是指:把一棵二叉树按照某种遍历方式的结果以某种格式保存为字符串,从而使得内存中建立起来的二叉树可以持久保存。序列化可以基于先序、中序、后序、层序的二叉树遍历方式来进行修改,序列化的结果是一个字符串,序列化时通过 某种符号表示空节 阅读全文
posted @ 2020-05-29 17:16 troubleasy 阅读(118) 评论(0) 推荐(0) 编辑
 
摘要: 题目描述 从上到下按层打印二叉树,同一层结点从左至右输出。每一层输出一行。 思路:层次遍历 vector<vector<int> > Print(TreeNode* pRoot) { vector<vector<int> > vec; if(pRoot == NULL) return vec; qu 阅读全文
posted @ 2020-05-29 17:06 troubleasy 阅读(90) 评论(0) 推荐(0) 编辑
 
摘要: 题目描述 请实现一个函数按照之字形打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右至左的顺序打印,第三行按照从左到右的顺序打印,其他行以此类推。 思路:两个栈,父节点保存一个栈,从右到左输入,从左到右输出,孩子节点在另一个栈,从左到右输入,从右到左输出; vector<vector<int 阅读全文
posted @ 2020-05-29 17:01 troubleasy 阅读(136) 评论(0) 推荐(0) 编辑
 
摘要: 题目描述 请实现一个函数,用来判断一颗二叉树是不是对称的。注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的。 思路:p1节点应该跟p2节点相等,其中p2经过镜像操作后跟p1同一个位置。 镜像操作:每个节点的左右孩子交换位置 bool isSymmetrical(TreeNode* pRo 阅读全文
posted @ 2020-05-29 16:47 troubleasy 阅读(123) 评论(0) 推荐(0) 编辑
 
摘要: 题目描述 给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回。注意,树中的结点不仅包含左右子结点,同时包含指向父结点的指针。 /*struct TreeLinkNode { int val; struct TreeLinkNode *left; struct TreeLinkNo 阅读全文
posted @ 2020-05-29 16:36 troubleasy 阅读(106) 评论(0) 推荐(0) 编辑
 
摘要: 题目描述 在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表1->2->3->3->4->4->5 处理后为 1->2->5 ListNode* deleteDuplication(ListNode* pHead) { //这里的重复节点与例 阅读全文
posted @ 2020-05-29 16:23 troubleasy 阅读(85) 评论(0) 推荐(0) 编辑
 
摘要: 题目描述 给一个链表,若其中包含环,请找出该链表的环的入口结点,否则,输出null. ListNode* EntryNodeOfLoop(ListNode* pHead) { //链表为空,链表无环 while(pHead==NULL||pHead->next==NULL) return NULL; 阅读全文
posted @ 2020-05-29 16:17 troubleasy 阅读(88) 评论(0) 推荐(0) 编辑