算法+面试列题
文章平均质量分 63
无
编程搬运工
我不是生产者,只是记录学习的搬运工。
展开
-
java中如何计算出两个日期之间相差多少天
思路就是根据它们相bai差的毫秒数除以每天du的毫秒数(60*60*24*1000),代码zhi如下:public static void main(String[] args) throws ParseException {String date1="1987-01-01";String date2="2010-01-01";SimpleDateFormat sdf=new SimpleDateFormat("yyyy-mm-dd");Date d1=sdf.parse(date1)原创 2020-08-05 10:33:34 · 10898 阅读 · 5 评论 -
J2EE面试题
1、面向对象的特征有哪些方面1.抽象:抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节。抽象包括两个方面,一是过程抽象,二是数据抽象。2.继承:继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性的方法。对象的一个新类可以从现有的类中派生,这个过程称为类继承。新类继承了原始类的特性,新类称为原始类的派生类(子类),而原始类称为新类的基类(父类)。派生类可以从它的基...原创 2020-07-12 19:26:59 · 359 阅读 · 0 评论 -
C语言面试题
1.要求使用一维数组,输入10名同学的序号和成绩,并进行排序。/*题目1196:成绩排序题目描述:用一维数组存储学号和成绩,然后,按成绩排序输出。输入:输入第一行包括一个整数N(1<=N<=100),代表学生的个数。接下来的N行每行包括两个整数p和q,分别代表每个学生的学号和成绩。输出:按照学生的成绩从小到大进行排序,并将排序后的学生信息打印出来。如果学生的成绩相同,则按照学号的大小进行从小到大排序。样例输入:31 902 873 92样例输出:2 871 9原创 2020-07-07 13:36:27 · 160 阅读 · 0 评论 -
JAVA面试题-CORE JAVA部
1. 在main(String[] args)方法内是否可以调用一个非静态方法?答案:不能2. 同一个文件里是否可以有两个public类?答案:不能3. 方法名是否可以与构造器的名字相同? 答案:可以。public class Test{ public Test(String iceboy) { Sy...原创 2019-07-05 15:04:39 · 304 阅读 · 1 评论 -
Linux简单命令操作
※ Linux进入与退出系统※ 进入Linux系统:必须要输入用户的账号,在系统安装过程中可以创建以下两种帐号:1.root--超级用户帐号(系统管理员),使用这个帐号可以在系统中做任何事情。2.普通用户--这个帐号供普通用户使用,可以进行有限的操作。 一般的Linux使用者均为普通用户,而系统管理员一般使用超级用户帐号完成一些系统管理的工作。如果只需要完成一些由普通帐号就能...原创 2018-11-08 22:59:04 · 499 阅读 · 0 评论 -
经典例题
以二进制形式输出一个十进制数 利用for循环和移位以及&amp;amp;运算1.while循环方法:package com.briup.ch03;/** * 将一个十进制数以二进制形式输出 */public class BinOut{ public void test(int num){ int i=31; while(i&amp;gt;...原创 2018-08-13 12:54:55 · 296 阅读 · 0 评论 -
写出一个在字符串数组中查找最长共同前缀的程序
编写一个函数来查找字符串数组中的最长公共前缀,如果不存在公共前缀,返回空字符串 ""。示例 1:输入: ["flower","flow","flight"]输出: "fl"示例 2:输入: ["dog","racecar","car"]输出: ""解释: 输入不存在公共前缀。说明:所有输入只包含小写字原创 2018-10-26 09:56:36 · 1537 阅读 · 0 评论 -
将给定字符串倒序输出的函数
面试的过程中经常会出现这样一个问题:写一个函数,将给定的字符串倒序输出。以下是StringReverseOpt定义静态方法: <span style="font-size:18px;">public class StringReverseOpt { /** * 方式一:使用String类的toCharAr...原创 2018-10-26 10:05:15 · 3664 阅读 · 0 评论 -
正则类:判断一个字符串是否全是数字
package Test;import java.util.regex.Pattern;public class NumberUtil { /** * 判断一个字符串是否是数字。 * * @param string * @return */ public static boolean isNumber(String st...原创 2018-11-02 18:53:43 · 4082 阅读 · 1 评论 -
钱币组合问题(动态规划)
钱币组合问题:(每种硬币不限次数)假设我们有8种不同面值的硬币{1,2,5,10,20,50,100,200},用这些硬币组合够成一个给定的数值n。例如n=200,那么一种可能的组合方式为200 = 3 * 1 + 1*2 + 1*5 + 2*20 + 1 * 50 + 1 * 100. 问总过有多少种可能的组合方式?解题思路:给定一个数值sum,假设我们有m种不同类型的硬币{V1, ...原创 2018-10-26 10:53:10 · 8567 阅读 · 0 评论 -
java面试算法考点
1、分解质因数import java.util.Scanner;/* * 分解质因数 */public class Prime_Factorization { public static void main(String[] args) { Scanner in = new Scanner(System.in); int n = in.nex...原创 2018-10-26 10:15:53 · 227 阅读 · 1 评论 -
基数排序法(Java实现)
基数排序也是排序算法的一种,老规矩,先来看看百度百科的定义:基数排序(radix sort)属于“分配式排序”(distribution sort),又称“桶子法”(bucket sort)或bin sort,顾名思义,它是透过键值的部份资讯,将要排序的元素分配至某些“桶”中,藉以达到排序的作用,基数排序法是属于稳定性的排序,其时间复杂度为O (nlog(r)m),其中r为所采取的基数,而m为堆数...原创 2018-09-03 17:26:45 · 9965 阅读 · 10 评论 -
堆排序法(Java实现)
堆排序(Heapsort)是指利用堆积树(堆)这种数据结构所设计的一种排序算法,它是选择排序的一种。可以利用数组的特点快速定位指定索引的元素。(摘自百度百科) 想知道什么是堆排序,就得先知道什么是堆,堆分为两种,大根堆和小根堆,什么是大根堆小根堆呢?那你得先知道完全二叉树,什么是完全二叉树?完全二叉树,若设二叉树的深度为h,除第 h 层外,其它各层 (1~h-1) 的结点数都达到最大...原创 2018-09-03 17:23:03 · 143 阅读 · 0 评论 -
希尔排序法(Java实现)
希尔排序也是排序算法的一种,先说他的定义,希尔排序是把记录按下标的一定增量分组,对每组使用直接插入排序算法排序;随着增量逐渐减少,每组包含的关键词越来越多,当增量减至1时,整个文件恰被分成一组,算法便终止。(摘自百度百科) 看不懂,对吧,我用白话文说一说,其实他就是一个改良版的插入排序(插入排序可以参考我以前的博客),为什么这么说呢,如果你仔细去研究插入排序算法,很快就会发现,这种算...原创 2018-09-03 17:20:16 · 264 阅读 · 0 评论 -
快速排序法(Java实现)
快速排序也是排序算法的一种,他的基本思想是这样的:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。(摘自百度百科) 好,上面的东西,很难理解,很难想象,我知道,那咱们还是举个例子,假定现在有一个整型数组{1,2,6,8,5,3,4,...原创 2018-09-03 17:18:46 · 223 阅读 · 0 评论 -
归并排序法(Java实现)
归并排序也是排序算法的一种,它是将两个已经排好序的数组,合并成另一个排好序的数组,原理是这样的:定义一个新数组,再定义两个指针,分别指向两个已经排好序的数组的第一个元素,然后两者进行比较,较小的那个数放到新定义的那个数组的第一个位置,同时,将较小的那个数的下标加1,再跟刚刚比他大的那个数比较,两者中较小的数就放到新数组里面,最后比较完之后,若其中一个数组有剩余的元素没有比较,就将剩余的元素直接插入...原创 2018-09-03 17:11:37 · 609 阅读 · 0 评论 -
插入排序法(Java实现)
插入法排序※ 插入法排序原理 利用插入法对无序数组排序时,我们其实是将数组R划分成两个子区间R[1..i-1](已排好序的有序区)和R[i..n](当前未排序的部分,可称无序区)。插入排序的基本操作是将当前无序区的第1个记录R[i]插人到有序区R[1..i-1]中适当的位置上,使R[1..i]变为新的有序区。因为这种方法每次使有序区增加1个记录,通常称增量法。 插入排序与打扑克时整理手上的...原创 2018-08-12 11:54:28 · 58851 阅读 · 8 评论 -
冒泡排序法(Java实现)
冒泡排序法原理对数组进行排序,冒泡排序法的原理就是将一组无序数组进行排序,同过把值较小的数逐渐向数组的顶部(即朝第一个元素)冒出来,就像水中的气泡上升一样。同时,值较大的数据逐渐向数组的底部(即朝最后一个元素)沉下去。这种算法用嵌套的循环对整个数组进行数次遍历,每次遍历都要比较数组中相邻的一对元素,如果这对元素以升序(或者值相等)的顺序排列,那么保持它们的位置不变;如果这对元素以降序的顺序排列...原创 2018-08-07 20:15:19 · 21277 阅读 · 5 评论 -
选择排序法(Java实现)
选择排序法※ 选择排序法原理 对于一个无序数组,将其排列成为一个有序数组。选出最小的一个数与第一个位置的数交换;然后在剩下的数当中再找最小的与第二个位置的数交换。如此循环到倒数第二个数和最后一个数比较为止。 图解:根据原理,我们首先记录第一位为最小,然后依次进行比较,直到找到比第一位小的数,记录这个数为最小,再依次进行比较,直到整个数组比较结束找到最小的数。此时将最小数放在数组的第一位...原创 2018-08-10 17:21:57 · 444 阅读 · 0 评论