面试算法题

1.只出现一次的数字

使用异或运算符,相同数字异或得0,将所有数字异或到一起,最后只剩下一个数字,就是只出现一次的数字。异或运算具有交换律(a^b^c=a^c^b)

2.多数元素

向上取整:比自己大的最小整数,用数学符号⌊⌋表示;向下取整:比自己小的最大整数,用数学符号⌈⌉表示;

eg:a=4.9,向上取整是5,向下取整是4

Array.sort( a ),对一个数组所有元素从小到大进行排列。

摩尔投票

3.搜索二维矩阵

(1)暴力解法(boolean是java中布尔数据类型,返回结果只有true和false)

(2)从矩阵的右上角

4.合并两个有序数组

  (1) 参照归并排序

(2)从大往小开始

5.验证回文字符串

  是一个正读反读都一样的字符串,例如level等。

  Character.isLetterOrDigit(int codePoint):确认指定字节是一个字母或数字。

  s.charAt( )返回指定位置的char值,s.charAt(0):检索s中第一个字符。

  toLowerCase( )将大写字母转换为小写字母。

(1)双指针解决法

(2)使用正则匹配

(3)使用递归方法实现

6.分割回文串

 

 

 

 

 

 

 

 

上一篇:字节聪明的编辑(Java)


下一篇:179.最大数(字符串解法,字符串知识点密集)