关闭

【Java笔试题】定义栈的数据结构

定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数,在该栈中,调用min、push和pop的时间复杂度都是O(1)。...
阅读(201) 评论(0)

【Java笔试题】合并有序数组

将两个有序数组合并成一个有序数组。例如,arr1 = {-1,1,3},arr2 = {0,2,4},则合并后的数组为arr = {-1,0,1,2,3,4}。...
阅读(197) 评论(0)

【Java笔试题】限制文件的访问次数

给定一个文件,对其进行访问次数的限制。例如,某网站的某些内容,对于未注册的用户,其只能访问5次,那么当用户的访问次数超过5次的时候,网站就会给用户提示,“对不起,您的访问次数已到,请注册!”,如果用户不注册的话,就算其退出当前网站,再次进入该网站访问该内容的时候,仍然不能访问该内容。...
阅读(742) 评论(0)

【Java笔试题】输出字符串中第一个不重复的字符

在一个字符串中找到第一个只出现一个的字符。例如,输入“abaccdeff”,则输出b。...
阅读(217) 评论(0)

【Java笔试题】输出字符串的所有组合

输入一个字符串,输出该字符串中字符的所有组合。举个例子,如果输入abc,它的组合有a、b、c、ab、ac、bc、abc。...
阅读(317) 评论(0)

【Java笔试题】输出字符串的全排列

输入一个字符串,打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a、b、c所能排列出来的所以字符串abc、bac、bca、cab和cba。...
阅读(199) 评论(0)

【Java笔试题】最长公共子串

求两个字符串的最长公共子串,例如str1=“123china”,str2=“23hit”,则其最长公共子串为“23”。...
阅读(147) 评论(0)

【Java笔试题】字符串包含问题

给定两个分别由字母组成的字符串str1和字符串str2,字符串str2的长度比字符串str1短,请问,如何最快地判断字符串str2中所有字母是否都在字符串str1里?例如,字符串str1为“ABCD”,str2为“AC”,则返回true,因为字符串str2中的字母A和B都在字符串str1中,但如果str2为“AE”,则返回false,因为字符串str2中的字母E不在字符串sstr1中。...
阅读(382) 评论(0)

【Java笔试题】分数列求和

有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13…求出这个数列的前n项之和,其中,n可以用键盘输入。解题思想:观察题目中给出的分数序列,我们可以发现一条规律,那就是相邻的两个分数之间,前一个分数的分子与分母之和是后一个分数的分子,前一个分数的分子是后一个分数的分母,利用这条性质,再加上for循环求和就可以实现题目中的要求啦!...
阅读(193) 评论(0)

【Java笔试题】对目录进行深度遍历

对指定目录进行所有内容的列出(包含子目录中的内容),也可以理解为对目录进行深度遍历。解题思想:从电脑中获取文件目录,建立函数对其遍历,在这个函数中需要对该目录中的每个文件进行判断,如果文件还是目录,则调用函数本身继续对其进行遍历,如果文件不是目录,则直接输出文件名。为了加强显示的效果,我们还可以建立一个getSpace函数,对其进行缩进。...
阅读(484) 评论(0)

【Java笔试题】顺时针打印矩阵

输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字。例如:如果输入如下矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出来的数字为:1、2、3、4、8、12、16、15、14、13、9、5、6、7、11、10...
阅读(446) 评论(0)

堆排序(HeapSort)

堆是一种重要的数据结构,分为大根堆和小根堆,是完全二叉树, 底层如果用数组存储数据的话,假设某个元素为序号为i(Java数组从0开始,i为0到n-1),如果它有左子树,那么左子树的位置是2i+1,如果有右子树,右子树的位置是2i+2,如果有父节点,父节点的位置是(n-1)/2取整。最大堆的任意子树根节点不小于任意子结点,最小堆的根节点不大于任意子结点。...
阅读(362) 评论(2)

归并排序(MergeSort)

归并排序是建立在归并操作上的一种有效的排序算法,该算法和快速排序都是采用分治法来设计算法的,区别在于归并排序把数组分为两个基本等长(最多相差一个元素)的子数组,分别排好序之后还要进行归并操作,而快速排序在拆分子数组的时候则有所不同,其取一个基准元素,拆分之后基准元素左边的元素都比基准元素小,右边的元素都不小于基准元素,这样只需要分别对两个子数组排序即可,不再像归并排序一样需要归并操作。...
阅读(284) 评论(0)

快速排序(QuickSort)

快速排序就是通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。快速排序是一种不稳定的排序算法,也就是说,多个相同的值的相对位置也许会在算法结束时产生变动,其最坏的时间复杂度是O(n^2),其最优的时间复杂度是O(nlogn)。...
阅读(536) 评论(0)

插入排序(InsertSort)

对于一个已经有序的数据序列,要求在这个已经排好的数据序列中插入一个数,但要求插入后此数据序列仍然有序,这个时候就要用到插入排序。插入排序的基本操作就是将一个数据插入到已经排好序的有序数据中,从而得到一个新的、元素个数加1的有序数组,算法适用于少量数据的排序,时间复杂度为O(n^2),是稳定的排序方法。...
阅读(440) 评论(1)
274条 共19页首页 上一页 ... 16 17 18 19 下一页 尾页
    个人资料
    • 访问:268183次
    • 积分:6177
    • 等级:
    • 排名:第4031名
    • 原创:208篇
    • 转载:61篇
    • 译文:5篇
    • 评论:474条
    博主的 GitHub 账号
    GitHub : Charies Gavin

        欢迎大家在 GitHub 上Follow 博主,以及 Fork、Star、Watch 博主的项目。


      青春不老 奋斗不止


      好学若饥虚心若愚
    博客专栏