Python笔记

List

  • l.pop(i)弹出第i个元素
  • for index, num in enumerate(nums)
  • l[::-1]
  • l.count(x)
  • min(l, key = lambda x: abs(target - x))
  • Sort Array by Increasing Frequency:

    def frequencySort(self, A):
        count = collections.Counter(A)
        return sorted(A, key=lambda x: (count[x], -x))
    

Dictionary

  • defaultdict(int)
  • counts = collections.Counter(nums)
  • dictionary.get(keyname, optional_value_if_key_not_exist_default_None)

Set

  • set1 & set2

Linked List

  • head.next

Tree

  • if node
  • node.val, node.left, node.right

Stack

  • Min Stack

Heap

  • 堆是一种基本的数据结构,堆的结构是一棵完全二叉树,并且满足堆积的性质:每个节点(叶节点除外)的值都大于等于(或都小于等于)它的子节点。
  • import heapq

其他

  • float('inf')
  • mod(value,2)
  • ord('A')
  • yield

常用解题技巧

  • 遍历过程中用hashmap存储,避免重复遍历
  • 2 pointers
  • 二分法,3 pointers(left,pivot,right)
  • Dynamic Programming, 存储上一轮的结果,遍历过程中不断更新变量
  • DFS Depth First Search
  • BFS Breadth First Search
  • bucket sort / counting sort
  • Greedy: 贪心算法(greedy algorithm),又称贪婪算法,是一种在每一步选择中都采取在当前状态下最好或最优(即最有利)的选择,从而希望导致结果是最好或最优的算法。贪心算法与动态规划的不同在于它对每个子问题的解决方案都做出选择,不能回退。动态规划则会保存以前的运算结果,并根据以前的结果对当前进行选择,有回退功能。

你可能感兴趣的:(python)