zoukankan      html  css  js  c++  java
  • 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的位置返回即可。
    
  • 相关阅读:
    编译环境及编译器介绍
    linux下同步window的firefox
    DPDK pdump抓包说明
    linux TCP协议(1)---连接管理与状态机
    Linux用户态数据发送和接收
    DPDK之内存管理
    linux socket系统调用层
    linux网络栈结构
    DPDK mbuf何时释放回内存池?
    虚拟设备之linux网桥
  • 原文地址:https://www.cnblogs.com/zlting/p/10168390.html
Copyright © 2011-2022 走看看