面试题-Java算法篇
2015-11-18 15:59
405 查看
最近得空,就去一些招聘网站做了些面试题,为方便大家共同学习,Java相关的算法就在这篇博客里记录一下,以后有空会持续更新,大家有更好的写法也可以留言告诉我。
面试题-Android篇 传送门
面试题-Java API篇 传送门
求阶乘
={“a”,”1”,”b”,”2”,”c”,”3”,”d”,”4”,…}
输出:
a=1;
b=2;
c=3;
…
面试题-Android篇 传送门
面试题-Java API篇 传送门
1. 使用递归完成以下输出:
* ** *** **** *****
/** * 打印星号, 第一行1个, 以后每行增加一个 * * @param row 行数 */ public void printStart(int row) { if (row <= 0) { System.out.println("行数应大于0"); return; } if (row == 1) { System.out.println("*"); return; } printStart(row - 1); for (int i = 0; i < row; i++) { System.out.print("*"); } System.out.println(); }
2. 给定一个长字符串,找出现次数最多的字符:
/** * 找出现次数最多的字符 * * @param source 源字符串 * @return */ public List<Character> findMaxChars(String source) { List<Character> maxChars = new ArrayList<>(); int maxCount = 0; // 保存所有字符和出现次数 Map<Character, Integer> map = new HashMap<>(); // 字符串遍历 for (Character character : source.toCharArray()) { map.put(character, map.get(character) == null ? 1 : map.get(character) + 1); if (map.get(character) > maxCount) { maxChars.clear(); maxChars.add(character); maxCount = map.get(character); } else if (map.get(character) == maxCount) { maxChars.add(character); maxCount = map.get(character); } } return maxChars; }
3. 用递归编写求和或者求阶乘的函数
求和public int sum(int number) { if (number == 1) { return 1; } else { return number + sum(--number); } }
求阶乘
public int factorial(int number) { if (number == 1) { return 1; } else { return number * factorial(--number); } }
4. 按照指定格式输出内容
已知:字符串数组String items={“a”,”1”,”b”,”2”,”c”,”3”,”d”,”4”,…}
输出:
a=1;
b=2;
c=3;
…
public class MyClass { public static void main(String[] args) { MyClass myClass = new MyClass(); String[] items = new String[]{"a", "1", "b", "2", "c", "3", "d", "4"}; myClass.formatPrint(items); } public void formatPrint(String[] items) { if ((items.length & 1) != 0) { System.out.println("数组中元素个数应为偶数."); return; } StringBuilder builder = new StringBuilder(""); for (int i = 0; i < items.length; i++) { if ((i & 1) == 0) { // 偶数 builder.delete(0, builder.length()); builder.append(items[i]); builder.append("="); } else { // 奇数 builder.append(items[i]); builder.append(";"); System.out.println(builder.toString()); } } } }
相关文章推荐
- 黑马程序员——Java基础——异常
- 异常介绍、自定义异常、异常面试题
- 【小松教你手游开发】【面试必读(编程基础)】 转载一篇优秀的c#泛型理解
- 黑马程序员——Java基础——继承之内部类(四)
- 黑马程序员——Java基础——继承之多态(三)
- 面试经典题目:字符串翻转I am a student
- 【黑马程序员】OC-Foundation框架—NSDictionary和NSMutableDictionary
- 【黑马程序员】OC-Foundation框架—NSArray和NSMutableArray
- 【黑马程序员】OC-Foundation框架—NSString和NSRange
- 【黑马程序员】OC-Foundation框架—NSMutableString
- 黑马程序员——Java基础——数组工具类、设计模式和继承(一)
- 【黑马程序员】OC-分类(Category)及延展(Extendsion)
- Java面试题总结(听录)
- 20个高级Java面试题汇总
- 专访李运华:程序员如何在技术上提升自己
- 坚持到底—兄弟连IT教育
- 公司的一个java面试题
- 为什么你的努力一文不值?
- 我的投资案例(3)-看好互联网和金融两大朝阳行业,参投入股垂直金融招聘平台"职业梦CareerDream.cn"
- 我的投资案例(3)-看好互联网和金融两大朝阳行业,参投入股垂直金融招聘平台"职业梦CareerDream.cn"