leetcode链表删除环-practice_on_DS_and_ALGO:实践_on_DS_and_ALGO

  • j6_790696
    了解作者
  • 391KB
    文件大小
  • zip
    文件格式
  • 0
    收藏次数
  • VIP专享
    资源类型
  • 0
    下载次数
  • 2022-05-08 05:40
    上传日期
leetcode链表删除环数据结构 动态数组 & & 图表 算法 位操作和数字 - 顺便说一下,无符号数与有符号数的区别 排序的稳定性 — 就地排序以获得 O(1) 空间 (Sort、QuickSelect、Medium of Mediums)——实现所有三种方式 排列 子集 Dijkstra's Algorithm(只需学习想法 - 无需实施) 树遍历——BFS、DFS(中序、前序、后序):实现递归和迭代 ——没有实施; 只知道这个概念。 (视频)——只要知道这个概念 在无向图中 检测有向图中的循环 在图表中 在图中查找强连通分量 准备工作 一旦您对上述数据结构和算法感到满意,请多次(至少 2-3 次)进行以下练习,直到您可以闭上眼睛进行练习。 从头开始实现一个 ArrayList 链表 反转链表(leetcode #206, #234) 检测链表中的环(leetcode #141 和 #142) 合并两个顺序链表(leetcode #21) 从链表末尾删除第 N 个节点(leetcode #19) 找到链表的中间节点(leetcode #234) 使用数组实现堆栈(leetcode
practice_on_DS_and_ALGO-master.zip
  • practice_on_DS_and_ALGO-master
  • sort
  • mergeSort
  • sort.c
    1.4KB
  • Makefile
    159B
  • quickSort
  • sort.c
    1.1KB
  • Makefile
    159B
  • linked_list
  • Makefile
    159B
  • list.c
    1.6KB
  • stack
  • valid_paraentheses
  • stack.c
    1.6KB
  • Makefile
    160B
  • graph
  • graph.h
    446B
  • queue.h
    293B
  • graph.c
    3.6KB
  • main.c
    374B
  • queue.c
    795B
  • graph.md
    183B
  • Makefile
    275B
  • binary_search
  • sort.c
    1.1KB
  • binarySearch.c
    1.5KB
  • sort.h
    96B
  • Makefile
    283B
  • backtracking
  • queenProblem.c
    1.4KB
  • Makefile
    167B
  • queue
  • queue.c
    1.2KB
  • Makefile
    160B
  • array
  • ArrayList
  • arrayList.c
    2.9KB
  • Makefile
    164B
  • arrayList.h
    1.1KB
  • binary_tree
  • img
  • bt.jpg
    369.5KB
  • level_order
  • binaryTree.h
    222B
  • Makefile
    280B
  • binaryTree.c
    3.4KB
  • binaryTree.h
    222B
  • tree.md
    92B
  • Makefile
    272B
  • binaryTree.c
    2.7KB
  • README.md
    3.8KB
内容介绍
# Data Structures * Dynamic Array * [Linked List](https://www.notion.so/Linked-list-39466fce6cc04908938246ffa33d0ccc) * [Stack](https://www.notion.so/Stack-53d8208ddba74fa58b9288450b407244) & [Queue](https://www.notion.so/Queue-7ed01983f01041e492ef3aaddc421b8a) * [Hash Tables](https://www.notion.so/Hash-Table-33df36ad7d5540b3a77bd2a2341a9774) * [Binary Search Tree](https://www.notion.so/Tree-27f956fdf04d44678807e2bb9fe90404) * [Binary Heaps](https://www.notion.so/Tree-27f956fdf04d44678807e2bb9fe90404#d2a7067a623d41ac8b9fd3e0615d65eb) & [Priority Queue](https://www.notion.so/Tree-27f956fdf04d44678807e2bb9fe90404#dd9cfd9f9a584c4c83f2a73a21955f78) * Graphs * [Trie](https://www.notion.so/Tree-27f956fdf04d44678807e2bb9fe90404#b10a17a28e3347b4856afb37cba0b251) # Algorithms * Bit Manipulation & Numbers — difference btw Unsigned vs signed numbers * Stability in Sorting * [Mergesort](https://www.notion.so/Sorting-5691566d56e94e73a5c72d557f9f5d4c#dc334df3aa3e4a2294b600102c285e7b) * [Quicksort](https://www.notion.so/Sorting-5691566d56e94e73a5c72d557f9f5d4c#26bbc7067df94050a88177103ceedfc3) * [Heapsort](https://www.notion.so/Sorting-5691566d56e94e73a5c72d557f9f5d4c#ad9f9bce81664d649735d09e7a891e80) — Sort it in-place to get O(1) space * [Binary Search](https://www.geeksforgeeks.org/binary-search/) * [Selections — Kth Smallest Elements](https://www.notion.so/Selections-Kth-Smallest-Elements-b87c9cf2c27947c499408c6c0c3f3e7a) (Sort, QuickSelect, Mediums of Mediums) — Implement all three ways * Permutations * Subsets * [BFS Graph](https://www.notion.so/Graph-9c39c906676f4b51ab073d552143f3e4#6ac473b162b449c8b12173197edb4361) * [DFS Graph](https://www.notion.so/Graph-9c39c906676f4b51ab073d552143f3e4#f26e9f120c854ac6b40fb66340220613) * Dijkstra’s Algorithm (just learn the idea — no need to implement) * Tree Traversals — BFS, DFS (in-order, pre-order, post-order): Implement Recursive and Iterative * [External Sort](https://www.notion.so/External-Sort-ec7412dbf7114e5aab876d9a6336dbba) — No implementation; Just know the concept. * [NP-Complete](https://www.notion.so/NP-1a6637c2013144b28be59e166c9a0986) (Video) — Just know the concept * [Topological Sort](https://www.notion.so/Topological-Sort-1fed26e975074792aa211f5779291a69) * [Detect cycle](https://www.notion.so/Detect-cycle-in-graph-62a37559e82545e69f3761476e647991) in an undirected graph * Detect a cycle in a directed graph * [Count connected components](https://www.notion.so/Connected-component-in-graph-13803c133fea4106a84b16a94623f5a7) in a graph * Find strongly connected components in a graph # Prep work Once you are comfortable with the data structures & algorithms above, do the following exercise multiple times (at least 2–3 times) until you can do them with your eyes closed. * Implement an ArrayList from scratch * Linked list * Reverse a linked list (leetcode #206, #234) * Detect ring in linked list (leetcode #141 and #142) * Merge two sequential linked list (leetcode #21) * Delete Nth node from the end of linked list (leetcode #19) * Find the middle node of linked list (leetcode #234) * Implement a Stack (leetcode #155) & a Queue using Array (leetcode #641) * Implement a HashTable with simple Hashing functions * Implement a Graph using Adjacency List, and then write functions for BFS & DFS. * Write the binary search algorithm both recursively and iteratively * Write the merge sort algorithm * Write the quicksort algorithm * Print binary tree using DFS (in-order, preorder and post order — all three of them) and BFS. * Memorize time & space complexities for common algorithms. Here’s an [interesting website](https://www.bigocheatsheet.com/). * Implement a trie. * Learn these important bit manipulation tricks. This idea is inspired by https://www.alimirio.com/posts/read-this-before-you-start-solving-problems-on-leetcode-prep-work
评论
    相关推荐