心得

    1. 链表要用新链表接收才可以操作,不要操作原始链表
    2. 自己 new 的链表需要二次操作的时候也需要用新链表来接收它
    3. 方法输入的参数要做合法性判断后再让算法处理它
    4. 利用 Java 已经存在的数据结构处理问题可能会快点
    5. 动态规划问题的核心是找状态转移方程
    6. 可以多使用 语言自带的 API
    7. 字符转整数:int num = 'a' - 0;
    8. 递归 + 回溯
    9. 多指针法 + 滑动窗口
    10. 位运算:左移相当于乘 2,右移相当于除 2
    11. 与次数、频率有关的使用 Hash 表
    12. 字符串相关问题可以考虑 Hash 表
    13. 善于利用逻辑表达式&&,||,? :来判断
    14. 字符串逆序String s2 = new StringBuffer(s1).reverse().toString();
    15. Set 集合存储不重复的元素
    16. Hash 适用于与查找有关的东西
    17. Arrays.sort()解决排序问题。JDK >= 8
    18. String str = s.trim();可以去除字符串首尾的空格,不包含中间的空格。
    19. int最大值:2147483647,最小值:-2147483648
    20. 刷了几道题发现:能用循环暴力解决的都有更简单的方法,暴力法只适合数据小的测试,对于大数据就严重超时,甚至溢出!
    21. int数组ListList<Integer> list = Arrays.stream(数组名).boxed().collect(Collectors.toList());
    22. 利用栈的先进后出的特点可以解决类似括号匹配的问题
    23. 双指针、三指针甚至是四指针等多指针快速在数据元素间移动,比多重循环块快很多
    24. 字符转整数:‘2’ - ‘0’得到整数2
    25. 递归、回溯比循环要好
    26. 算法是数学游戏,要找规律
    27. 可以允许的条件下,多重循环自然是简单的选择

 

所属分类:问答

 0条回应

我有话说:
    • 春建童鞋
    • 关注
      • 515796发布
      • 95评论
    ×
    订阅图标按钮