数据结构
不 知
只做笔记记录,如语句不通顺不理解见谅,有帮助最好,没帮助也请口下积德。
by design.
展开
-
旋转数组的二分查找法
https://blog.csdn.net/bjweimengshu/article/details/90826510转载 2021-11-03 13:58:07 · 240 阅读 · 0 评论 -
Leetcode刷题_圆环回原点问题
题目大意:圆环上有10个点,编号为0-9。从0点出发,每次可以逆时针和顺时针走一步,问走n步回到0点共有多少种走法?这一个动态规划问题,其公式为:dp[i][j] = dp[i-1][(j - 1 + length) % length]+dp[i - 1][j + 1 % length]举个例子:如果需要求走两步回到0点共有多少总走法,那么是走一步到 1 的走法 + 走一步到 9 的走法的和下面是实现代码:#include <iostream>using namespace原创 2021-07-22 18:59:24 · 1113 阅读 · 0 评论 -
C++内存管理之分配器雏形
c++中每次malloc会带有调试头和尾,记录当前区块大小的头和尾。因此我们尽可能需要减少malloc的调用次数,又因为new底层也是malloc实现的,因此,也需要减少其调用次数。我们可以通过设计内存池来管理一个内存链表,每次分配较多的数量,并依次进行取用。下面是代码实现:实现原理是内嵌指针的操作。请注意:该分配器只适用于内存大于4字节的分配,因为内嵌指针需要寄托在未分配内存上,因此,其内存大小必须大于指针的字节数 。 大于 4#include <iostream>#inclu..原创 2020-08-31 21:19:48 · 124 阅读 · 0 评论 -
贪心算法实现从电台的问题
#include <iostream>#include <algorithm>#include <set>#include <string>#include <iterator>#include <vector>#include <map>#include <functional>using namespace std;int main09(){ map<string, set&l原创 2020-08-27 20:57:12 · 182 阅读 · 0 评论 -
环形队列(索引从0开始(C语言、C++、Java)、索引从1开始(Matlab))
环形队列综合分析0索引开始的代码实现(C++)从1索引开始的代码实现(Matlab)综合分析关于数组模拟环形队列的问题,有两点疑问。为什么用数组模拟?为什么要有环形队列?刚开始想用数组模拟队列,因为数组索引方便,使用简单。但是数组模拟队列有几点局限性。数组是一个定长的类型,即一经分配,无法修改长度。但是我们在使用队列的时候,可能需要很多个数据,那么对于队列的长度选取就存在着问题。因此,聪明的人们开始想着用环形队列进行代替,即环岛一样,可以重复利用多余的空间。那么在使用数组进行环形队列模拟原创 2020-08-27 20:47:54 · 1068 阅读 · 0 评论 -
剑指offer第17题判断是否是子树(递归回溯的应用)
时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M 热度指数:790003 本题知识点: 二叉树 树算法知识视频讲解题目描述 输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构)树的结点:struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : val(x), left(NULL), r.原创 2020-08-24 15:15:50 · 125 阅读 · 0 评论 -
顺时针打印
可以通过指定四个方向,上下左右,判断下个方向应该是朝哪个方向。代码如下:简单易懂#include <iostream>#include <cstdlib>#include <string.h>using namespace std;enum Direction{ RIGHT, DOWN, LEFT, UP};int snake[4][4]{0};Direction dd = RIGHT;Direction judgeD.原创 2020-08-24 09:47:38 · 109 阅读 · 0 评论 -
蛇形打印
打印蛇形矩阵,如下图所示,行和列用不同颜色表示。import numpy as npif __name__ == '__main__': num = input("请输入矩阵的维数\n") num = int(num) mat = [[0 for i in range(num)] for j in range(num)] print(mat) value = 1 for row in range(num): if row % 2 == 0原创 2020-08-23 15:44:53 · 214 阅读 · 0 评论 -
动态规划算法之0-1背包、完全背包、重复背包问题分析
0-1背包问题假设现在有三件物品:吉他、音响、电脑。其重量分别为1Kg、4Kg、3Kg其价格是:1500、3000、2000(元)0、1背包问题的解决问题是:(填表之后)可以得出状态转移方程式:(1)第一行和第一列的值为零(2)W[i] > j 时,V[i] [j] = V[i-1] [j](3)...原创 2020-08-21 13:43:00 · 1785 阅读 · 0 评论