牛课网
Java-我的世界-begin
程序员的一生时间90%是用在编程上,而剩余的10%是活在世界上。
展开
-
链表分割
题目描述编写代码,以给定值x为基准将链表分割成两部分,所有小于x的结点排在大于或等于x的结点之前 给定一个链表的头指针 ListNode* pHead,请返回重新排列后的链表的头指针。注意:分割以后保持原来的数据顺序不变。import java.util.*;import java.util.*;/*public class ListNode { int val; ListNo原创 2016-04-25 19:52:52 · 1009 阅读 · 0 评论 -
集合栈
题目描述请实现一种数据结构SetOfStacks,由多个栈组成,其中每个栈的大小为size,当前一个栈填满时,新建一个栈。该数据结构应支持与普通栈相同的push和pop操作。给定一个操作序列int[][2] ope(C++为vectorint>>),每个操作的第一个数代表操作类型,若为1,则为push操作,后一个数为应push的数字;若为2,则为pop操作,后一个数无意义。请返回一转载 2016-05-07 15:15:19 · 438 阅读 · 0 评论 -
两个栈实现一个队列
题目描述用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。1. class Solution{public: void push(int node) { //入队时,将元素压入s1。 //出队时,判断s2是否为空,如不为空,则直接弹出顶元素;如为空,则将s1的元素逐个“倒入”s2,把最后一个元素弹出并出队。原创 2016-05-06 10:54:26 · 319 阅读 · 0 评论 -
回文链表
题目描述请编写一个函数,检查链表是否为回文。 给定一个链表ListNode* pHead,请返回一个bool,代表链表是否为回文。 测试样例: {1,2,3,2,1} 返回:true {1,2,3,2,3} 返回:falseC/C++ 实现1 、 新建链表,从表头插入,,然后比较两个链表,,,原理较为简单,但是需要额外的内存空间/*struct ListNode { int v原创 2016-05-05 17:08:24 · 379 阅读 · 0 评论 -
链式A+B
题目描述有两个用链表表示的整数,每个结点包含一个数位。这些数位是反向存放的,也就是个位排在链表的首部。编写函数对这两个整数求和,并用链表形式返回结果。 给定两个链表ListNode* A,ListNode* B,请返回A+B的结果(ListNode*)。 测试样例: {1,2,3},{3,2,1} 返回:{4,4,4}C/C++实现 /*struct ListNode { int原创 2016-05-03 21:34:09 · 311 阅读 · 0 评论 -
牛课网 | 选择
下面哪些特性可能导致代码体积膨胀:A 宏定义B 模板C 内联函数D 递归A 宏定义会单纯的替换,也就是如果宏定义替换的内容会成倍复制,所以会导致代码膨胀B 模板的调用,会根据调用的参数,生成模板对应的实际调用的函数体,如果调用的参数不同,会生成不同的代码,所以会导致代码膨胀C 内联函数会拷贝至调用的位置,如果调用多次回导致代码膨胀,,原创 2016-05-11 10:38:15 · 795 阅读 · 0 评论 -
双栈排序
题目描述请编写一个程序,按升序对栈进行排序(即最大元素位于栈顶),要求最多只能使用一个额外的栈存放临时数据,但不得将元素复制到别的数据结构中。 给定一个int[] numbers(C++中为vector<int>),其中第一个元素为栈顶,请返回排序后的栈。请注意这是一个栈,意味着排序过程中你只能访问到第一个元素。 测试样例: [1,2,3,4,5] 返回:[5,4,3,2,1]思路:迫于原创 2016-05-09 21:49:38 · 964 阅读 · 0 评论 -
清除行列
题目描述请编写一个算法,若MxN矩阵中某个元素为0,则将其所在的行与列清零。 给定一个MxN的int[][]矩阵(C++中为vector>)mat和矩阵的阶数n,请返回完成操作后的int[][]矩阵(C++中为vector>),保证n小于等于300,矩阵中的元素为int范围内。 测试样例: [[1,2,3],[0,1,2],[0,0,1]] 返回:[[0,0,3],[0,0,0],[0,0,原创 2016-04-27 15:03:54 · 386 阅读 · 0 评论 -
像素翻转
题目描述 有一副由NxN矩阵表示的图像,这里每个像素用一个int表示,请编写一个算法,在不占用额外内存空间的情况下(即不使用缓存矩阵),将图像顺时针旋转90度。给定一个NxN的矩阵,和矩阵的阶数N,请返回旋转后的NxN矩阵,保证N小于等于500,图像元素小于等于256。 测试样例: [[1,2,3],[4,5,6],[7,8,9]],3 返回:[[7,4,1],[8,5,2],[9,6,3]原创 2016-04-27 10:12:14 · 454 阅读 · 0 评论 -
evaluate-reverse-polish-notation
根据逆波兰式(后序遍历),计算出相应的结果,,Evaluate the value of an arithmetic expression in Reverse Polish Notation. Valid operators are+,-,*,/. Each operand may be an integer or another expression. Some examples: [原创 2016-06-13 16:31:43 · 325 阅读 · 0 评论