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.分割回文串