常用命令

  1. mid=(left+right)/2溢出
  2. 长度读取
  3. 目标:对数值进行取整操作。
  4. 排序
  5. 子序列与子串

mid=(left+right)/2溢出

  1. mid=left+(right-left)/2
  2. mid=left+((right-left)>>1)

长度读取

  1. length属性:用于获取数组长度;
  2. length()方法:用于获取字符串长度;
  3. 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());
    

目标:对数值进行取整操作。

  1. 四舍五入:Math.round(result);
    1. 记忆方式:单词round,是“附近”的意思
  2. 向上取整 :Math.ceil(result);
    1. 记忆方式:单词ceil,是“天花板”的意思
  3. 向下取整 :Math.floor(result);
    1. 记忆方式:单词floor,是“地板”的

排序

  1. java快捷命令:Arrays.sort(new int[]{0,1});
  2. 冒泡排序
      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;
              }
          }
      }
    

子序列与子串

  1. 一个字符串s被称作另一个字符串S的子串,表示s在S中出现了。
  2. 一个字符串s被称作另一个字符串S的子序列,说明从序列S通过去除某些元素但不破坏余下元素的相对位置(在前或在后)可得到序列s。
    1. 空子序列是唯一一个满足元素和小于或等于 1 的子序列
  3. 最长回文子串/最长回文子序列:
    1. 显然,最长回文子串必须连续,而最长回文子序列可以在原字符串中不连续。
  4. 最长公共子串/最长公共子序列:
    1. 两者的区别是子串要求连续的,子序列不需要连续,所以在动态规划解决两种问题时,子串的状态转移方程中的表现就是,当
      s1\[i\]\!=s2\[j\]时,dp\[i\]\[j\]=0

转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达,可以邮件至 963614756@qq.com。