11 2015 档案

摘要:题目:数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。思路:解法一:基于partition函数的O(n)算法。 先用partition函数对数组进行交换修... 阅读全文
posted @ 2015-11-11 10:47 我是一名老菜鸟 阅读(426) 评论(0) 推荐(0)
摘要:题目:输入一个字符串,打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a、b、c所能排列出来的所有字符串abc、acb、bac、bca、cab、cba。测试用例:1)功能测试(输入的字符串中有1个或者多个字符);2)特殊输入测试(输入的字符串的内容为空或者是null指针);相关题... 阅读全文
posted @ 2015-11-10 20:32 我是一名老菜鸟 阅读(483) 评论(1) 推荐(0)
摘要:题目:输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。(本质是中序遍历)二叉树结点的定义如下:struct BinaryTreeNode{ int m_nValue; BinaryTreeNode* m_pLeft; ... 阅读全文
posted @ 2015-11-10 15:21 我是一名老菜鸟 阅读(218) 评论(0) 推荐(0)
摘要:1、Character类的概述 ·Character 类在对象中包装一个基本类型 char 的值 ·此外,该类提供了几种方法,以确定字符的类别(小写字母,数字,等等),并将字符从大写转换成小写,反之亦然2、构造方法public class CharacterDemo01 { public ... 阅读全文
posted @ 2015-11-09 11:46 我是一名老菜鸟 阅读(3501) 评论(0) 推荐(0)
摘要:题目:请实现ComplexListNode* Clone(ComplexListNode* pHead),复制一个复杂链表。在复杂链表中,每个结点除了有一个m_pNext指针指向下一个结点外,还有一个m_pSibing指向链表中的任意结点或者null。struct ComplexListNode{ ... 阅读全文
posted @ 2015-11-09 11:40 我是一名老菜鸟 阅读(303) 评论(0) 推荐(1)
摘要:题目:输入一棵二叉树和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。二叉树结点的定义如下:struct BinaryTreeNode{ int m_nValue; BinaryTreeNode* m_pLeft; ... 阅读全文
posted @ 2015-11-09 11:38 我是一名老菜鸟 阅读(236) 评论(0) 推荐(0)
摘要:1、包装类的概述 ·将基本数据类型封装成对象的好处在于可以在对象中定义更多的功能方法操作该数据。 ·常用的操作之一:用于基本数据类型与字符串之间的转换。 ·基本类型和包装类的对应 为了对基本数据类型进行更多的操作,更方便的操作,Java就针对每一种基本数据类型提供了对应的类类... 阅读全文
posted @ 2015-11-09 11:36 我是一名老菜鸟 阅读(1128) 评论(0) 推荐(0)
摘要:1、Arrays类概述 ·针对数组进行操作的工具类。 ·提供了排序,查找等功能。2、成员方法 ·public static String toString(int[] a):in[] a可以改为其他类型的数组,把数组转成字符串 ·public static void sort(int[] a... 阅读全文
posted @ 2015-11-09 11:22 我是一名老菜鸟 阅读(3004) 评论(1) 推荐(0)
摘要:题目:输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则返回true,否则返回false。假设输入的数组的任意两个数字都互不相同。测试用例:1)功能测试(输入的后序遍历的序列对应一棵二叉树,包括完全二叉树,所有结点都没有左/右子树的二叉树、只有一个结点的二叉树;输入的后续遍历的... 阅读全文
posted @ 2015-11-07 16:43 我是一名老菜鸟 阅读(258) 评论(0) 推荐(0)
摘要:题目:从上往下打印出二叉树的每个结点,同一层的结点按照从左到右的顺序打印。例如输入如图的二叉树,则依次打印出8,6,10,5,7,9,11.(其实是按层遍历)二叉树结点的定义如下:struct BinaryTreeNode{ int m_nValue; BinaryTreeNode* ... 阅读全文
posted @ 2015-11-07 16:41 我是一名老菜鸟 阅读(318) 评论(0) 推荐(0)
摘要:1、数组排序 1)冒泡排序/** * 冒泡排序基本概念是: * 依次比较相邻的两个数,将小数放在前面,大数放在后面。 * 即在第一趟:首先比较第1个和第2个数,将小数放前,大数放后。 * 然后比较第2个数和第3个数,将小数放前,大数放后,如此继续, * 直至比较最后两个数,将小数放前,大数放后。至... 阅读全文
posted @ 2015-11-07 16:39 我是一名老菜鸟 阅读(359) 评论(0) 推荐(0)
摘要:1、StringBuffer类概述 1)我们如果对字符串进行拼接操作,每次拼接,都会构建一个新的String对象,既耗时,又浪费空间。而StringBuffer就可以解决这个问题 2)线程安全的可变字符序列 3)StringBuffer和String的区别 ·前者长度和内容可变,后者不可... 阅读全文
posted @ 2015-11-06 21:56 我是一名老菜鸟 阅读(6260) 评论(1) 推荐(2)
摘要:1、String类概述 ·字符串是由多个字符组成的一串数据(字符序列),也可以看成是一个字符数组。 · 字符串字符值“abc”也可以看成是一个字符串对象。 · 字符串是常量,一旦被赋值,就不能被改变。2、构造方法 ·public String():空构造。 ·public String... 阅读全文
posted @ 2015-11-06 11:44 我是一名老菜鸟 阅读(5954) 评论(0) 推荐(0)
摘要:题目:输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1、2、3、4、5是某栈的压栈序列,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该栈序列的弹出序列。思路:如果下一个弹出的数字刚好是... 阅读全文
posted @ 2015-11-06 11:24 我是一名老菜鸟 阅读(293) 评论(0) 推荐(0)
摘要:实现思路:们需要一个辅助栈。每次push一个新元素的时候,同时将最小元素(或最小元素的位置。考虑到栈元素的类型可能是复杂的数据结构,用最小元素的位置将能减少空间消耗)push到辅助栈中;每次pop一个元素出栈的时候,同时pop辅助栈。测试用例:1)功能测试(输入的两个数组含有多个数字或者只有1个数字... 阅读全文
posted @ 2015-11-06 11:19 我是一名老菜鸟 阅读(192) 评论(0) 推荐(0)
摘要:题目:输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字。例如:如果输入如下矩阵:1 2 3 45 6 7 89 10 11 1213 14 15 16则依次打印出数字1、2、3、4、8、12、16、15、14、13、9、5、6、7、11、10。测试用例:数组有多行多列,数组只有一行,数组... 阅读全文
posted @ 2015-11-04 11:00 我是一名老菜鸟 阅读(228) 评论(0) 推荐(0)
摘要:题目:请完成一个函数,输入一个二叉树,该函数输出它的镜像二叉树结点的定义如下:struct BinaryTreeNode{ int m_nValue; BinaryTreeNode* m_pLeft; BinaryTreeNode* m_pRight;}求一棵树的镜像的过程:... 阅读全文
posted @ 2015-11-04 10:59 我是一名老菜鸟 阅读(278) 评论(0) 推荐(0)
摘要:1、Scanner类概述 JDK5以后用于获取用户的键盘输入,一个可以使用正则表达式来解析基本类型和字符串的简单文本扫描器。Scanner使用分隔符模式将其输入分解为标记,默认情况下该分隔符模式与空白匹配。然后可以使用不同的next方法将得到的标记转换为不同类型的值。2、现在使用的构造方法 pu... 阅读全文
posted @ 2015-11-03 19:28 我是一名老菜鸟 阅读(2755) 评论(0) 推荐(0)
摘要:1、Object类概述 1)类层次结构的根类。 2)所有类都直接或者间接的继承自该类。 3)构造方法 ·public Object() ·子类的构造方法默认访问的是父类的无参构造方法。 4)Object类的所有方法摘要2、学习常用的方法。 1)public int has... 阅读全文
posted @ 2015-11-03 17:44 我是一名老菜鸟 阅读(627) 评论(0) 推荐(0)
摘要:题目:输入两棵二叉树A和B,判断B是不是A的子结构。二叉树结点的定义如下:struct BinaryTreeNode{ int m_nValue; BinaryTreeNode* m_pLeft; BinaryTreeNode* m_pRight;}代码实现:package com.... 阅读全文
posted @ 2015-11-03 15:09 我是一名老菜鸟 阅读(222) 评论(0) 推荐(0)
摘要:题目:输入两个递增排序的链表,合并这两个链表并使新链表中的结点仍然是按照递增顺序的。struct ListNode{ int m_nKey; ListNode* m_pNext;}测试用例:1)功能测试(输入的两个链表有多个结点,结点的值互不相同或者存在值相等的多个结点);2)特殊输入测... 阅读全文
posted @ 2015-11-03 15:08 我是一名老菜鸟 阅读(252) 评论(0) 推荐(0)
摘要:1、从面向过程到面向对象 在大家最熟悉的C语言中,如果要定义一个复杂的数据类型就用结构体(Struct)来实现,而为结构体的每个操作都定义一个函数,这个函数与结构体本身的定义没有任何关系。程序的重心集中在函数上。这样的项目结构较为松散且混乱,而且代码的重用性和维护性较差。所以就有了面向对象的概念。... 阅读全文
posted @ 2015-11-03 14:58 我是一名老菜鸟 阅读(407) 评论(0) 推荐(0)
摘要:题目:定义一个函数,输入一个链表的头结点,反转该链表并输出反转后链表的头结点。链表结点定义如下:struct ListNode{ int m_nKey; ListNode* m_pNext;}相当于有两条链表,从一条链表复制到另外一条链表中。测试用例:1)输入的链表头指针是null;2)... 阅读全文
posted @ 2015-11-02 09:39 我是一名老菜鸟 阅读(231) 评论(0) 推荐(0)
摘要:题目:输入一个链表,输出该链表中倒数第K个结点。为了符合大多数人的习惯,本体从1开始奇数,即链表的尾结点是倒数第1个结点。例如一个链表有6个结点,从头结点开始他们的值一次是1、2、3、4、5、6.这个链表的倒数第3个结点是值为4的结点。思路:先是一个指针往前走,走了k步之后,前后指针一起走,但是要注... 阅读全文
posted @ 2015-11-02 09:38 我是一名老菜鸟 阅读(251) 评论(0) 推荐(0)