需求: 有二维数组,例如:{5,2,6,3}{1,4,8,1}{3,2,6,3}{9,3,7,2}每个数字代表… 继续阅读 动态规划算法求解 A点到B点最小距离
分类: 数据结构与算法
回溯算法求解 A点到B点最小距离
需求: 有二维数组,例如:{5,2,6,3}{1,4,8,1}{3,2,6,3}{9,3,7,2}每个数字代表… 继续阅读 回溯算法求解 A点到B点最小距离
数据结构与算法之二叉树
树(Tree) 数据结构中的树和我们现实生活中的树非常像,从根部发散出枝丫。 看下面的结构: 数据结构是由各个… 继续阅读 数据结构与算法之二叉树
算法题:5万条URL,如何按照出现次数快速排序
题目:5万条URL,统计出现的次数,并进行排序 解题思路:使用散列表来映射URL,统计每个URL出现的次数,然… 继续阅读 算法题:5万条URL,如何按照出现次数快速排序
算法题:细胞分裂计算
题目:1个细胞的生命周期是 3 小时,1 小时分裂一次。求 n 小时后,容器内有多少细胞? 前提:到第三个小时… 继续阅读 算法题:细胞分裂计算
数据结构与算法之跳表
我们都知道,对于链表的查找,时间复杂度为O(n),那么有没有什么办法来提高查找性能呢?答案是肯定的,需要对链表… 继续阅读 数据结构与算法之跳表
数据结构与算法之求平方根
不使用API,怎样求一个数的近似平方根呢? 答案就是使用二分查找法。 思路就是我们用高低位两个数取中间值,然后… 继续阅读 数据结构与算法之求平方根
数据结构与算法之二分查找法 复杂场景应用
对于一个不重复的有序数组,进行二分查找是最简单的,最容易些的,但是实际情况可能并不总是这么简单,而是多种复杂的… 继续阅读 数据结构与算法之二分查找法 复杂场景应用
数据结构与算法之二分查找法
二分查找法 对一个已排序数组进行查找,查找方法是每次取数组中间位置的数和当前查找数比较,如果查找数等于当前这个… 继续阅读 数据结构与算法之二分查找法
数据结构与算法之快速排序
核心思想:从要排序的一组数据中取出任意一个数x,作为分区点,将小于x的数放到其左边,将大于x的数放到其右边,x… 继续阅读 数据结构与算法之快速排序
数据结构与算法之归并排序
归并排序(Merge Sort) 归并排序的核心思想并不复杂,要排序一个数组,我们先把数组从中间分成前后两部分… 继续阅读 数据结构与算法之归并排序
冒泡排序、插入排序、选择排序性能对比
冒泡排序、插入排序和选择排序三种排序的时间复杂度都是O(n^2),我们来对比一下它们之间的性能差异。 我们随机… 继续阅读 冒泡排序、插入排序、选择排序性能对比
数据结构与算法之选择排序
选择排序(Selection Sort) 核心思想:数据分为已排序区间和未排序区间。选择排序每次会从未排序区间… 继续阅读 数据结构与算法之选择排序
数据结构与算法之插入排序
插入排序(Insertion Sort) 核心思想:将数组中的数据分为两个区间,已排序区间和未排序区间。初始已… 继续阅读 数据结构与算法之插入排序
数据结构与算法之冒泡排序
冒泡排序(Bubble Sort) 每次比较相邻的两个数的大小。一次冒泡会找出数据中的最大值,放到数组最后。n… 继续阅读 数据结构与算法之冒泡排序
数据结构与算法之递归
递归:分为递和归两个动作。简单通俗的来说,就是当前步骤发现自己处理不了,那么就“递”出去,让别人处理;每个步骤… 继续阅读 数据结构与算法之递归
单链表反转 代码示例与核心逻辑说明
单链表如何实现反转? 实现效果: null -> e1 -> e2 -> e3 反转后: n… 继续阅读 单链表反转 代码示例与核心逻辑说明
算法学习:leetcode32. 最长有效括号
题目 给定一个只包含 ‘(‘ 和 ‘)’ 的字符串,找出最长的包含有效… 继续阅读 算法学习:leetcode32. 最长有效括号
算法学习:leetcode 108. 将有序数组转换为二叉搜索树
将一个按照升序排列的有序数组,转换为一棵高度平衡二叉搜索树。 本题中,一个高度平衡二叉树是指一个二叉树每个节点… 继续阅读 算法学习:leetcode 108. 将有序数组转换为二叉搜索树
算法学习:leetcode3. 无重复字符的最长子串
给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。 示例 1: 思路:这里还… 继续阅读 算法学习:leetcode3. 无重复字符的最长子串