摘要: /* 题目: 数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。 例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0。 */ /* 思路: 转化为快排中,第n/2大的数字。 验证该数字是否超过 阅读全文
posted @ 2019-12-03 20:15 笨宝宝 阅读(184) 评论(0) 推荐(0) 编辑
摘要: /* 题目: N皇后的问题。 */ /* 思路: 全排列。 声明一个具有N个元素的数组curr,每个下标i(0>i>n)代表行,每个curr[i]代表列,所以初始化为curr[i] = i。 此时,各皇后既不在一行也不在一列,只需解决对角线的问题。 当|i-j|==|curr[i]-curr[j]| 阅读全文
posted @ 2019-12-02 20:39 笨宝宝 阅读(174) 评论(0) 推荐(0) 编辑
摘要: /* 题目: 给定不含重复字符字符串的全组合。 */ /* 思路: 递归法。 例给定abc,输出的组合长度为1,2,3. 对于长度为2的组合,分选择a(ab,ac)和不选择a的情况(bc)。 选择a,则在剩余字符串中选择长度为1的字符组合; 不选择a,则在剩余字符串中选择长度为2的字符组合。 */ 阅读全文
posted @ 2019-12-01 16:07 笨宝宝 阅读(180) 评论(0) 推荐(0) 编辑
摘要: /* 题目: 输入字符串,打印字符串的所有排列。 输入acc,输出[acc, cac, cca]。 */ /* 思路: 将字符串看作两部分,第一个字符串和后面的部分。 将第一个字符串与后面字符串依次交换。求后面部分的全排列。 进入递归,将第二个字符串与后面的字符串依次交换,求后面部分的全排列。 .. 阅读全文
posted @ 2019-12-01 14:04 笨宝宝 阅读(346) 评论(0) 推荐(0) 编辑
摘要: /* 题目: 将二叉搜索树转化为排序的双向链表,不能创建新的节点, 只能调整节点的指向,返回双向链表的头节点。 */ /* 思路: 递归。 二叉搜索树的中序遍历得到的序列是递增序列。 左子树left<=>root<=>右子树right。 左链表left<=>root<=>右链表right。 对于左链 阅读全文
posted @ 2019-11-29 20:46 笨宝宝 阅读(122) 评论(0) 推荐(0) 编辑
摘要: /* 使用多线程可通过继承Thread类或实现Runnable接口。 Thread和Runnable的关系:public class Thread implements Runnable。 使用thread.start(),告诉线程规划器准备就绪;而thread.run()要求线程规划器执行后才能执 阅读全文
posted @ 2019-11-28 22:00 笨宝宝 阅读(138) 评论(0) 推荐(0) 编辑
摘要: /* 题目: 实现一个函数,复制复杂链表,返回复制链表的头节点。 */ /* 思路: 第一步,复制一个链表S‘,插在原链表S中。 第二步,链表S’复制链表S的random指针。 第三步:拆分链表S和S‘。 */ #include<iostream> #include<string.h> #inclu 阅读全文
posted @ 2019-11-28 21:41 笨宝宝 阅读(85) 评论(0) 推荐(0) 编辑
摘要: /* 题目: 输入一颗二叉树和一个整数,打印从根节点到叶子节点中所有和为该整数的路径。 */ /* 思路: 先序遍历,深度遍历。 从树根开始,记录路径之和,遍历到叶子节点,如果和为期望值,则输出。 回退节点,寻找下一个叶子节点,直到遍历完所有到达叶子节点的路径。 */ #include<iostre 阅读全文
posted @ 2019-11-28 20:57 笨宝宝 阅读(110) 评论(0) 推荐(0) 编辑
摘要: /* 题目: 给定一个序列,判断它是否为某个二叉搜索树的后序遍历。 */ /* 思路: 二叉搜索树:左子树<根节点<右子树。 序列的最右端为根节点,小于根节点的左半部分为左子树,大于根节点的右半部分为右子树。 递归法,判断是否为合法的二叉搜索树。 */ #include<iostream> #inc 阅读全文
posted @ 2019-11-27 20:33 笨宝宝 阅读(94) 评论(0) 推荐(0) 编辑
摘要: /* 题目: 分行按层自上向下呈之字形打印二叉树。第一行从左到右,第二行从右到左,第三行从左到右... */ /* 思路: 使用两个栈stack1和stack2。 stack1存储从左向右打印的节点,stack2存储从右向左打印的节点。 stack1中pop的节点,按照先插入左节点再插入右节点的顺序 阅读全文
posted @ 2019-11-27 19:43 笨宝宝 阅读(97) 评论(0) 推荐(0) 编辑