摘要:
剑指Offer:字符串排列【38】 题目描述 输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。 题目分析 Java题解 阅读全文
摘要:
剑指Offer:矩形覆盖【N1】 题目描述 我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法? 题目思考 大矩形是由单元块(1*2)填充的,但是大矩形不是一下生成的,而是由比他小的矩形通过添加单元块生成的,添加的策略只能是 阅读全文
摘要:
MongoDB学习笔记(2):数据库操作及CURD 数据库操作 创建数据库 首先MongoDB中数据库的创建和数据库的切换都是使用命令,USE DATABASE,如果要切换的数据库不存在则会进行创建,但是我们看到虽然已经创建成功,当前也显示我们在使用myBD数据库,但是却不存在与show列表中,这是 阅读全文
摘要:
剑指Offer:树的子结构 题目描述 输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构) 解题思路 实话实说这道题是剑指Offer前半部分难度比较大的,我们先来思考一个简单情况,如下图,左树枝叶比右树繁茂,但是枝干是相同的,不同的枝叶情况不一样。 此时,我们如 阅读全文
摘要:
剑指Offer:反转链表 题目描述 输入一个链表,反转链表后,输出新链表的表头。 解题分析 首先在对链表进行节点互换、移动操作时,用到的最基本的工具就是指针。利用指针我们可以对链表节点进行变换操作,所以这道题最基本的一点是确定使用指针这一工具。 接下来,去思考用几个指针来解决问题: 对于一个指针来说 阅读全文
摘要:
剑指Offer:调整数组顺序使奇数位于偶数前面【21】 题目描述 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。 解题分析 关于排序算法的稳定性 排序前后两个相等的数相对位置不变 阅读全文
摘要:
剑指Offer:链表中倒数第k个结点【22】 题目描述 输入一个链表,输出该链表中倒数第k个结点。 解题思考 我们定义两个指针L和R,R事先移动K-1个位置,然后两者同时往后移动直到遇到R的下个节点为空,此时L节点的位置就是倒数第K个节点。 Java题解 package linklist; publ 阅读全文
摘要:
剑指Offer:合并两个排序的链表【25】 题目描述 输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。 题目分析 双指针问题的经典案例,合并有序链表。 上下两个指针,谁小谁先走,先走的是较小的蓝1,结果集新增蓝1. 上下两个指针,谁小谁先走,先走的是较小的 阅读全文
摘要:
MongoDB学习笔记(1):MongoDB的安装和说明 快速开始 下载地址 官网下载: https://www.mongodb.com/download-center?jmp=nav#community 安装指导: https://docs.mongodb.com/manual/tutorial/ 阅读全文
摘要:
剑指Offer:旋转数组的最小数字【11】 题目描述 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。 NOTE:给出的所有元素都大 阅读全文