数据结构与算法
Lucius_Keep_Going!
新人还请各位多多批评指正!
展开
-
回溯算法的套路/BFS/DFS
回溯算法框架 result = [] def backtrack(路径, 选择列表): if 满足结束条件: result.add(路径) return for 选择 in 选择列表: 做选择 backtrack(路径, 选择列表) 撤销选择 全排列问题 返回一个数组元素的全排列 力扣:46. 全排列 List<List<Integer>> res = new LinkedList&l原创 2020-09-11 21:38:11 · 248 阅读 · 0 评论 -
二叉树和二叉搜索树(BST)的秒杀方法
二叉树回溯算法框架 void method(TreeNode root) { // root 需要做什么?在这做。 // 其他的不用 root 操心,抛给框架 method(root.left); method(root.right); } 来看看这个框架能够秒杀哪些类型的题目 二叉树的镜像 void mirror(TreeNode root) { // root 需要做什么?左右互换 // 其他的不用 root 操心,抛给框架 if(root=原创 2020-09-10 14:23:57 · 152 阅读 · 0 评论 -
二分查找的前前后后
最普通的二分查找(无重复元素的有序数列) int binary_search(int[] nums, int target) { int left = 0, right = nums.length - 1; while(left <= right) { int mid = left + (right - left) / 2; if (nums[mid] < target) { left = mid + 1;原创 2020-09-09 10:45:14 · 136 阅读 · 0 评论 -
全排列-DFS
复仇Bytedance之路 题目描述: 给定一个 没有重复 数字的序列,返回其所有可能的全排列。 示例: 输入: [1,2,3] 输出: [ [1,2,3], [1,3,2], [2,1,3], [2,3,1], [3,1,2], [3,2,1] ] 题解 其实像这种类型的题目有很多,因此dfs是一种必须要掌握的方法 DFS视频讲解 深度优先搜索 class Solution { public List<List<Integer>> perm.原创 2020-07-03 21:03:22 · 95 阅读 · 0 评论 -
常见排序算法总结—Java实现
0. 总结表格 相关概念 稳定:如果a原本在b前面,而a=b,排序之后a仍然在b的前面。( 不稳定:如果a原本在b的前面,而a=b,排序之后 a 可能会出现在 b 的后面。 时间复杂度:对排序数据的总的操作次数。反映当n变化时,操作次数呈现什么规律。 空间复杂度:是指算法在计算机内执行时所需存储空间的度量,它也是数据规模n的函数。 1. 冒泡排序(Bubble Sort) 冒泡排序是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果它们的顺序错误就把它们交换过来。走访数列的工作原创 2020-06-28 14:10:40 · 531 阅读 · 0 评论 -
链表/队列/栈/集合/Map/树/堆
文章目录Java集合框架层次结构数组链表栈队列集合HashSetLinkedHashSetTreeSetMapHashMapLinkedHashMapTreeMapHashTableHashTable与HashMap的区别树二叉树满二叉树和完全二叉树:二叉查找树(BST)平衡二叉树AVL树红黑树AVL树和红黑树的区别B树和B+树B树(B-树)B+树堆大顶堆小顶堆 Java集合框架层次结构 首先给出Java集合框架的基本接口/类层次结构: java.util.Collection [I] +--jav原创 2020-08-08 16:52:30 · 653 阅读 · 0 评论