面试
丨NikoBelic丨
Reading
展开
-
Java实现九大排序算法
一、对比分析图均按从小到大排列k代表数值中的”数位”个数n代表数据规模m代表数据的最大值减最小值 稳定性:稳定排序算法会让原本有相等键值的纪录维持相对次序。也就是如果一个排序算法是稳定的,当有两个相等键值的纪录R和S,且在原本的列表中R出现在S之前,在排序过的列表中R也将会是在S之前。二、冒泡排序转载 2017-01-17 14:13:45 · 2060 阅读 · 0 评论 -
剑指Offer_2_实现Singleton模式
不好的解法:方法一:仅支持单线程的单例模式,只有if判断。public class NotSafeSingleton{ private static NotSafeSingleton instance = null; private NotSafeSingleton(){} public static NotSafeSingleton getInstance() {原创 2017-03-14 22:01:41 · 288 阅读 · 0 评论 -
剑指Offer_3_二维数组中的查找
题目描述 在一个二位数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下的递增顺序排序。请完成一个函数, 输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。解题思路 发现规律:1.首先选取数组中右上角的数字。如果该数字等于key,查找过程结束 2.如果该数字大于key,则删除这个数字所在的列(因为该列所有元素都比key大) 3.如果该数字小于key,则删除这个原创 2017-03-14 22:02:51 · 415 阅读 · 0 评论 -
剑指Offer_4_替换空格
题目描述 请实现一个函数,把字符串中的每个空格替换成 %20 。例如输入”We are happy”,则输出”We%20are%20happy” 不能用java的一些api,完全用C语言的方式完成本题,不然会被鄙视。解题思路 虽然我们可以使用遍历的方式,创建一个新的空数组来完成这道题,时间复杂度也只是O(n),但是浪费了很多空间。 虽然我们可以正序遍历数组,每碰到一个空格,就将后边的原创 2017-03-14 22:03:24 · 387 阅读 · 0 评论 -
剑指Offer_4Extra_合并两个有序数组
题目描述 有两个排序的数组A1和A2,内存在A1的末尾有足够多的空余空间容纳A2。请事先一个函数,把A2中的所有数字插入到A1zhong并且所有的数字是排序的。解题思路和前面的例题一样,很多人首先想到的办法是在A1中从头到尾复制数字,但是这样会出现多次复制一个数字的情况。 更好的办法是从尾到头比较A1和A2中的数字,并把较大的数字复制到A1的合适位置。 注意边界条件的控制,如果A1已经移动原创 2017-03-14 22:03:45 · 480 阅读 · 1 评论