您的位置:首页 > 职场人生

代码面试最常用的10大算法

2014-04-11 09:10 351 查看
在程序员的职业生涯中,算法亦算是一门基础课程,尤其是在面试的时候,很多公司都会让程序员编写一些算法实例,例如快速排序、二叉树查找等等。

本文总结了程序员在代码面试中最常遇到的10个算法,想要真正了解这些算法的原理,还需程序员们花些功夫。

1.String/Array/Matrix

在Java中,String是一个包含char数组和其它字段、方法的类。如果没有IDE自动完成代码,下面这个方法大家应该记住:

toCharArray() //get char array of a String
Arrays.sort()  //sort an array
Arrays.toString(char[] a) //convert to string
charAt(int x) //get a char at the specific index
length() //string length
length //array size
substring(int beginIndex)
substring(int beginIndex, int endIndex)
Integer.valueOf()//string to integer
String.valueOf()/integer to string

String/arrays很容易理解,但与它们有关的问题常常需要高级的算法去解决,例如动态编程、递归等。
下面列出一些需要高级算法才能解决的经典问题:

Evaluate Reverse Polish Notation

Longest Palindromic Substring

单词分割

字梯

Median of Two Sorted Arrays

正则表达式匹配

合并间隔
插入间隔

Two Sum

3Sum

4Sum

3Sum Closest

String to Integer

合并排序数组
Valid Parentheses
实现strStr()

Set Matrix Zeroes

搜索插入位置

Longest Consecutive Sequence

Valid Palindrome

螺旋矩阵

搜索一个二维矩阵

旋转图像

三角形

Distinct Subsequences Total

Maximum Subarray

删除重复的排序数组

删除重复的排序数组2

查找没有重复的最长子串

包含两个独特字符的最长子串

Palindrome Partitioning

http://www.csdn.net/article/2014-04-10/2819237-Top-10-Algorithms-for-Coding-Interview
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: