最近打算换工作,还是需要补一下面试的基础知识,写了一些面试中可能会用到的常用算法、方法,以便复习

    //99乘法表
/**
* 1*1
* 1*1 1*2
* 1*1 1*2 1*3
* ……
* */
private static void chengfabiao() {
for(int i=1;i<=9;i++) {
for(int j=1;j<=i;j++) {
System.out.print(j+"*"+i+"="+i*j+";");
}
System.out.println();
}
}
}

斐波那契数列:

//递归
private static int feibonaqie(int index) {
// TODO Auto-generated method stub
//0 1 1 2 3 5 8 13 21
int temp = 0; if(index == 0) {
return 0;
}else if(index == 1) {
return 1;
}else {
temp = feibonaqie(index-2)+feibonaqie(index-1);
//sum += temp;
//count++;
return temp;
} }
//循环
private static int feibonaqie2(int index) {
// TODO Auto-generated method stub
//0 1 1 2 3 5 8 13 21
int temp = 0;
int a = 0,b = 1;
if(index == 0) {
return 0;
}else if(index == 1) {
return 1;
}else { for(int i=2;i<=index;i++) {
temp = a+b;
a=b;
b=temp;
}
//sum += temp;
//count++;
return temp;
} }
/**
* @author QiaoJiafei
* @version 创建时间:2016年3月9日 下午12:02:09
* 类说明 获取数组平衡点
*/
public class TestArrayBlance {
public static void main(String[] args) {
int arr[] = {10,5,4,1,3,7};
getBlance(arr);
} private static void getBlance(int arry[]) {
// TODO Auto-generated method stub
int sum = 0;
int subsum = 0;
List<Integer> list = new ArrayList<Integer>();
for(int i=0;i<arry.length;i++) {
sum += arry[i];
}
for(int i=0;i<arry.length;i++) {
subsum += arry[i];
if(subsum == sum-subsum){
list.add(i);
}
for(int j=i+1;j<arry.length;j++) { if(subsum == sum-subsum-arry[j]) {
list.add(j);
}
}
}
System.out.println(list.size()+";"+list.get(0));
}
}
/*
* 4,模拟一个trim功能一致的方法。去除字符串两端的空白
* 思路:
* 1,定义两个变量。
* 一个变量作为从头开始判断字符串空格的角标。不断++。
* 一个变量作为从尾开始判断字符串空格的角标。不断--。
* 2,判断到不是空格为止,取头尾之间的字符串即可。
*/
public class StringTest_4 { /**
* @param args
*/
public static void main(String[] args) { String s = " ab c "; s = myTrim(s);
System.out.println("-" + s + "-");
} public static String myTrim(String s) { int start = 0, end = s.length() - 1; while (start <= end && s.charAt(start) == ' ') {
start++;
}
while (start <= end && s.charAt(end) == ' ') {
end--;
}
return s.substring(start, end + 1);
} }
/**
* @author QiaoJiafei
* @version 创建时间:2016年1月25日 上午11:52:50
* 类说明 获取最大子串。思路每次循环从子串的第一个位置开始start,以子串总长度-i结束end。整体依次往右移,这样循环。i代表循环次数,从0开始
*/
public class StringContents { public static void main(String[] args) {
// TODO Auto-generated method stub
String s1 = "asdflkjljsodfjiosdjf";
String s2 = "jsodfjia";
fff(s1, s2);
} public static void fff(String s1, String s2) {
boolean flag = false;
int len = s2.length();
for (int i= 0; i< len; i++) {
for (int a = 0,b=len-i; b<=len; a++,b++) {
String s = s2.substring(a, b);
//System.out.println(s);
if(s1.contains(s)) {
System.out.println("index:"+s1.indexOf(s));
System.out.println(s);
flag = true;
return;
}
}
if(flag) {
break;
}
}
}
}
public class Test {  
public static void main(String args[]) {
int [] arry = {5,45,2,1,8,6,12};
Test t = new Test();
}
//冒泡排序
void maoP(int a[]) {
int temp = 0;
for (int i=0;i<a.length-1;i++) {
for(int j=0; j<a.length-1-i; j++) {
if (a[j] > a[j+1]) {
temp = a[j];
a[j] = a[j+1];
a[j+1] = temp;
}
}
}
}
void prin(int a[]) {
for (int i=0; i<a.length; i++) {
System.out.print(a[i] + " ");
}
} //选择排序
void xuanZ(int a[]) {
for(int i=0; i<a.length; i++) {
//int p = a[i];
int temp = 0;
for (int j=i+1; j< a.length; j++) {
if (a[j] < a[i]) {
temp = a[i];
a[i] = a[j];
a[j] =temp;
//a[j] = temp;
}
}
}
} //快速排序
void kuaiS(int []a, int low, int high) {
if (low < high) {
int mid = kP(a, low, high);
kuaiS(a, low, mid-1);
kuaiS(a, mid+1, high);
}
}
int kP(int []a, int low, int high) {
int temp = a[low];
while (low < high) {
while (low < high && temp <= a[high]) {
high--;
}
a[low] = a[high];
while (low < high && temp >= a[low]) {
low++;
}
a[high] = a[low];
}
a[low] = temp;
return low;
}
//二分查找-普通循环
int erF(int a[], int tp) {
int mid = a.length/2;
int start = 0;
int end = a.length-1;
while (start <= end) {
mid = (end - start)/2 + start;
if (tp == a[mid]) {
return mid;
} else if (tp < a[mid]) {
end = mid -1;
} else if (tp > a[mid]) {
start = mid + 1;
} else {
return mid;
}
}
return -1;
}
//二分查找-递归
int erFeD(int a[],int dex, int start, int end) {
int mid = (end - start)/2 + start;
if (a[mid] == dex) {
return mid;
}
if (end <= start) {
return -1;
} else if (a[mid] > dex) {
return erFeD(a, dex, start, mid-1);
} else if (a[mid] < dex) {
return erFeD(a, dex, mid+1, end);
}
return -1;
}
//顺序查找
int shunX(int a[], int dex) {
for (int i=0; i< a.length-1; i++) {
if(a[i] == dex) {
return i;
}
}
return -1;
} //阶乘
void jieC(int temp) {
int f = 1;
for (int i=1; i<=temp; i++) {
f = f*i;
}
System.out.println(f);
}
//阶乘相加
void JieChJ(int temp) {
int sum = 0;
int f = 1;
for (int i=1; i<=temp; i++) {
f *= i;
sum += f;
}
System.out.println(sum);
}
//阶乘相加2
int jieC1(int temp) {
int f = 1;
for (int i=1; i<=temp; i++) {
f = f*i;
}
return f;
}
void jieC2(int temp) {
int sum = 0;
for (int i=1; i<=temp; i++) {
sum += jieC1(i);
}
System.out.println(sum);
}
//1~100的质数
void zhiS() {
for (int i=1; i<100; i+=2) {
boolean flag = true;
for (int j=2; j<i; j++) {
if (i%j == 0) {
flag = false;
break;
}
}
if (!flag) {
continue;
}
System.out.print(i + " ");
}
}
//1~100前5个被3整除的数
void zhengC() {
int temp = 0;
for (int i=1; i<=100; i++) {
if (i%3 == 0) {
temp++;
System.out.print(i + " ");
}
if (temp == 5) {
break;
}
}
}
}

输出:

0

12

345

6789

    static void fString() {
String s = "0123456789";
int sum = 0;
for(int i=0;i<4;i++) {
sum +=i;
System.out.println(s.substring(sum, sum+i+1));
}
}

一个数组中的元素出现了3次的值

    private static int getArrayValue(int array[]) {
// TODO Auto-generated method stub
int value = 0;
for(int i=0;i<array.length;i++) {
int count = 0;
for(int j=0;j<array.length;j++) {
if (array[i] == array[j]) {
count ++;
}
}
if(count == 3) {
value = array[i];
}
}
return value;
}

大小写转换

    public static void main(String[] args) {
String u[] = {"零","壹","贰","叁","肆","伍","陆","柒","捌","玖"};
int num = 123433568;
String s = String.valueOf(num);
char c[] =s.toCharArray(); for(int i=0;i<c.length;i++) {
int j = Integer.parseInt(String.valueOf(c[i]));
System.out.print(u[j]);
}
}

java常用方法总结的更多相关文章

  1. Java 常用方法

    java 图片上传from表单必加属性:enctype="multipart/form-data" 1.获取字符串的长度 : length() 2 .判断字符串的前缀或后缀与已知字 ...

  2. 22 java常用方法

    /** * 通过正则获取该目录下满足条件的所有目录 * @param luceneFilePathRegular 正则目录,如/user/solrindex/正则表达式 * @return 满足正则表 ...

  3. java常用方法

    public static int byte2int(byte b) { int i = b & 0x07f; if (b < 0) { i |= 0x80; } return i; } ...

  4. java常用方法集合

    1.获取当前日期 // 获取当前日期 public Date getDate(int num) { Calendar cal = new GregorianCalendar(); cal.setTim ...

  5. Spark案例分析

    一.需求:计算网页访问量前三名 import org.apache.spark.rdd.RDD import org.apache.spark.{SparkConf, SparkContext} /* ...

  6. java中集合类中Collection接口中的Map接口的常用方法熟悉

    1:Map接口提供了将键映射到值的对象.一个映射不能包含重复的键:每个键最多只能映射到一个值.Map接口中同样提供了集合的常用方法. 2:由于Map集合中的元素是通过key,value,进行存储的,要 ...

  7. Java中从控制台输入数据的几种常用方法

    Java中从控制台输入数据的几种常用方法 一.使用标准输入串System.in //System.in.read()一次只读入一个字节数据,而我们通常要取得一个字符串或一组数字 //System.in ...

  8. Java String类的常用方法

    String(byte[ ] bytes):通过byte数组构造字符串对象. String(char[ ] value):通过char数组构造字符串对象. String(Sting original) ...

  9. Java基础(30):String对象的常用方法与实例(String类)

    Java 中 String 类的常用方法 Ⅰ String 类提供了许多用来处理字符串的方法,例如,获取字符串长度.对字符串进行截取.将字符串转换为大写或小写.字符串分割等,下面我们就来领略它的强大之 ...

随机推荐

  1. LeetCode127:Word Ladder II

    题目: Given two words (start and end), and a dictionary, find all shortest transformation sequence(s) ...

  2. 才知道百度也提供了智能DNS服务 - 加速乐

    http://jiasule.baidu.com/ 智能DNS 依托百度多年积累的高精度DNS识别库,平均只需5秒全球DNS服务器全部生效,百度蜘蛛1秒生效.抗攻击.无限解析记录,免费支持电信.联通. ...

  3. 泛函编程(23)-泛函数据类型-Monad

    简单来说:Monad就是泛函编程中最概括通用的数据模型(高阶数据类型).它不但涵盖了所有基础类型(primitive types)的泛函行为及操作,而且任何高阶类或者自定义类一旦具备Monad特性就可 ...

  4. http get post

    使用java代码模拟http请求 package ftp; import java.io.BufferedReader; import java.io.IOException; import java ...

  5. mysql zip install

    1.Question Description: 1.1 version: mysql-5.7.11-64 1.2 form: zip file 1.3 >mysqld --install (su ...

  6. python爬虫——爬取NUS-WIDE数据库图片

    实验室需要NUS-WIDE数据库中的原图,数据集的地址为http://lms.comp.nus.edu.sg/research/NUS-WIDE.htm   由于这个数据只给了每个图片的URL,所以需 ...

  7. maven nexus deploy方式以及相关注意事项

    以前公司都是配管负责管理jar的,现在没有专职配管了,得自己部署到deploy上供使用.总的来说,jar部署到nexus上有两种方式: 1.直接登录nexus控制台进行上传,如下: 但是,某些仓库可能 ...

  8. IOS6学习笔记(一)

    一.ARC 1.ARC环境下可以使用-(void)dealloc{};处理一些事情(比如移除KVO观察),但不要调用[super dealloc]; 2.ARC与非ARC混编要注意符合Cocoa命名约 ...

  9. Git的安装和使用记录

    Git是目前世界上最先进的分布式版本控制系统(没有之一),只用过集中式版本控制工具的我,今天也要开始学习啦.廖雪峰的git教程我觉得很详细了,这里记录一下步骤以及我终于学会用Markdown了,真的是 ...

  10. OC中NSDictionary和NSSet简单操作

    /** *  字典 存放键值对类型的数据 存放数据是无序的 */ // 字典在控制台输出是用{}包括起来的 // NSDictionary 不可变字典 // 1.创建对象 // 初始化方法 NSDic ...