二维数组中的查找

二维数组中的查找 题目描述 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。
阅读全文

快速排序

快速排序 概念 快速排序也是分治的思想,但是它于归并算法更加好,是因为归并算法会用到辅助数组,其空间复杂度为O(n),而快速排序不需要用到新的数组空间,它的空间复杂度是O(1)
阅读全文

归并排序

归并排序 题目 把数组排成最小的数 数组中的逆序对 算法描述 归并排序是用到了分治的思想,分治的思想是将一个大问题拆分成很多歌小问题,然后再将已经处理完成的小问题合并成整个大问题,在这个过程中。在这个过程中,大问题就得到了解决,在Hadoop中MapReduce就是利用了这个思想。
阅读全文

希尔排序

希尔排序 思想 希尔排序的是基于插入排序的基础上来做的,我们都知道插入排序需要比较的次数比较多,那么希尔排序就是利用的一个间隔,用于降低比较后,元素移动的次数。
阅读全文

排序算法-冒泡插入选择

排序算法-冒泡插入选择 冒泡排序 # 冒泡排序 class Solution: def bubbleSort(self, array): for i in range(len(array)): flag = False for j in range(len(array) - 1 - i): if array[j] > array[j+1]:
阅读全文

矩形覆盖

矩形覆盖 来源 https://www.nowcoder.com/practice/72a5a919508a4251859fb2cfb987a0e6 描述 我们可以用2 X 1 的小矩形横着或者竖着去覆盖更大的矩形。请问用n个21的小矩形无重叠地覆盖一个2n的大矩形,总共有多少种方法?
阅读全文

连续子数组的最大和

连续子数组的最大和 题目 https://www.nowcoder.com/practice/459bd355da1549fa8a49e350bf3df484 描述 HZ偶尔会拿些专业问题来忽悠那些非计算机专业的同学。今天测试组开完会后,他又发话了:在古老的一维模式识别中,常常需要计算连续子向量的最大和,当向量全为正数的时候,问题很好解决。但是,如果向量中包含负数,是否应该包含某个负数,并期望旁边
阅读全文

找出丑数

找出丑数 题目 把只包含质因子2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因为它包含质因子7。 习惯上我们把1当做是第一个丑数。求按从小到大的顺序的第N个丑数。
阅读全文

序列化二叉树

序列化二叉树 题目 https://www.nowcoder.com/practice/cf7e25aa97c04cc1a68c8f040e71fb84 描述 请实现两个函数,分别用来序列化和反序列化二叉树 二叉树的序列化是指:把一棵二叉树按照某种遍历方式的结果以某种格式保存为字符串,从而使得内存中建立起来的二叉树可以持久保存。序列化可以基于先序、中序、后序、层序的二叉树遍历方式来进行修改,序列化
阅读全文

二叉搜索树的第K个节点

二叉搜索树的第K个节点 题目 https://www.nowcoder.com/practice/ef068f602dde4d28aab2b210e859150a 描述 给定一棵二叉搜索树,请找出其中的第k小的结点。例如, (5,3,7,2,4,6,8)
阅读全文