
数据结构与算法-算法
文章平均质量分 85
阳光洒在杨树上
这个作者很懒,什么都没留下…
展开
-
验证二叉搜索树
说明该题目是来自LeetCode98,是比较经典的的二叉树遍历问题。记录一下该题目的多种解法。题目描述判断一个二叉树是不是二叉搜索树,二叉搜索树的特征如下:结点的左子树只包含小于当前节点的数。结点的右子树只包含大于当前节点的数。左子树和右子树本身也是二叉搜索树。数的结点结构体定义为:/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; *原创 2021-08-18 23:33:34 · 225 阅读 · 1 评论 -
动态规划 —— 01背包问题
作为动态规划的经典题目,网上的很多解释模糊不清,写个博客记录一下吧。1、问题描述你有一个承重能力为 bearingbearingbearing 的背包,现在有一些物品,其重量按顺序存放在数组 weight(weight[i]>0)weight (weight[i]>0)weight(weight[i]>0) 中,每个物品的价值按顺序存放在数组 value 中。问题:在背包的承重范围内,可以装的物品的最大价值是多少?2、状态转移方程的建立2.1 状态转移方程我们用 dp[i][j]原创 2021-06-06 23:54:45 · 303 阅读 · 2 评论 -
详解十大经典排序算法(C++ 实现)
排序算法的分类:1、冒泡排序经典排序算法,算法启蒙。1.1 核心思想冒泡排序(Bubble Sort),从数组的第 0 个元素开始,每次遍历,一句大小关系选择是否将第 i 个数和第 i+i 个数交换。每次循环,最大的数被放到数组的尾部,小的数渐渐漂浮到数组的前列。就像泡泡逐渐从池底浮到水面一样,因此称之为冒泡排序。1.2 代码实现2、选择排序2.1 核心思想选择排序(Selection Sort),从数组的第 0 个元素开始,每次循环,找到当前剩余未排序的数中最小的值,将其已排序最后一个的数原创 2021-05-03 21:30:37 · 1584 阅读 · 4 评论