mid=(left+right)/2溢出
- mid=left+(right-left)/2
- mid=left+((right-left)>>1)
长度读取
- length属性:用于获取数组长度;
- length()方法:用于获取字符串长度;
- size()方法:用于获取泛型集合有多少个元素;
System.out.println(new int[]{0, 1}.length); System.out.println("123".length()); System.out.println(new HashSet<Integer>() {{ add(1); add(2); }}.size());
目标:对数值进行取整操作。
- 四舍五入:
Math.round(result);
- 记忆方式:单词round,是“附近”的意思
- 向上取整 :
Math.ceil(result);
- 记忆方式:单词ceil,是“天花板”的意思
- 向下取整 :
Math.floor(result);
- 记忆方式:单词floor,是“地板”的
排序
- java快捷命令:
Arrays.sort(new int[]{0,1});
- 冒泡排序
for (int i = 0; i < arr.length - 1; i++) { for (int j = 0; j < arr.length - 1 - i; j++) { if (arr[j] > arr[j + 1]) { int temp = arr[j]; arr[j] = arr[j + 1]; arr[j + 1] = temp; } } }
子序列与子串
- 一个字符串s被称作另一个字符串S的子串,表示s在S中出现了。
- 一个字符串s被称作另一个字符串S的子序列,说明从序列S通过去除某些元素但不破坏余下元素的相对位置(在前或在后)可得到序列s。
- 空子序列是唯一一个满足元素和小于或等于 1 的子序列
- 最长回文子串/最长回文子序列:
- 显然,最长回文子串必须连续,而最长回文子序列可以在原字符串中不连续。
- 最长公共子串/最长公共子序列:
- 两者的区别是子串要求连续的,子序列不需要连续,所以在动态规划解决两种问题时,子串的状态转移方程中的表现就是,当
s1\[i\]\!=s2\[j\]时,dp\[i\]\[j\]=0
- 两者的区别是子串要求连续的,子序列不需要连续,所以在动态规划解决两种问题时,子串的状态转移方程中的表现就是,当
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达,可以邮件至 963614756@qq.com。