leetcode刷题——一些算法技巧总结1.0

Posted zlting

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了leetcode刷题——一些算法技巧总结1.0相关的知识,希望对你有一定的参考价值。

  1. 运算符优先级,简单记就是:! > 算术运算符 > 关系运算符 > && > || > 赋值运算符

  2. 把数字取反,可以作为一种标记

  3. pythonlast = {c: i for i, c in enumerate(S)}标记字符串S中每个字母的最后一个位置,存到字典last中

    十分简洁的写法!!!

  4. 二分法规则:

    如果是这么写while(left <= right) {},代表是左闭右闭区间
    更新这么更新

    {
     right = mid -1 
     left = mid +1
    }

    如果是这么写while(left < right) {},代表是左闭右开区间
    更新这么更新

    {
     right = mid  
     left = mid +1
    }

    如果是这么写while(left < right-1) {},代表是左右双开区间
    更新这么更新

    {
     right = mid 
     left = mid 
    }

    mid = low + (high-low)/2 这样写防止溢出 !

  5. 第167题:two num和第560题:Subarray Sum Equals K有相同的思想:

    可以使用字典:key: 遍历list时记录子list的sum值

    ? value:遍历list时记录子list的sum值出现的次数

  这样要找sum为target的次数,就可以找`sum-k`的值出现的次数;

  要找sum为target的位置,把此时等于sum的位置返回即可。



以上是关于leetcode刷题——一些算法技巧总结1.0的主要内容,如果未能解决你的问题,请参考以下文章

Leetcode 动态规划刷题总结

LeetCode面试刷题技巧-二分查找算法代码思路解析

LeetCode面试刷题技巧-二分查找算法(下):通过 LeetCode 学习二分查找算法-销售价值减少的颜色球

算法比赛+刷题小技巧总结

leetcode之贪心算法刷题总结1

LeetCode面试刷题技巧- 贪心算法题习题集