- 博客(15)
- 资源 (1)
- 收藏
- 关注
原创 代码随想录1刷--day9 动态规划
动态规划,英文:Dynamic Programming, 简称DP,如果某个问题有很多重叠子问题,使用动态规划是最有效的。动态规划中每一个状态一定是由上一个状态推导出来的。完全背包问题与01背包问题的区别在于,同一个物品是可以被多次选择的,在前面01背包问题中提到,对背包容量是从大到小遍历,这就是为了防止同一个物品被多次选择。理论基础:有N件物品和最多能背重量为W的背包,第i件物品的重量为weight[i],得到的价值为value[i],因此在完全背包问题中,只需要将对背包容量的遍历也变成从小到大即可。
2024-02-26 18:27:13 1053 1
原创 代码随想录1刷--day8贪心
做题的时候,只要想清楚 局部最优 是什么,如何推导出全局最优,其实就够了。贪心的思想是局部最优推导出全局最优。que如果使用链表,效率会更高一些。如果要使用贪心的思想。
2024-02-21 14:05:31 408
原创 代码随想录1刷--day6 二叉树
如果一棵二叉树只有度为0的结点和度为2的结点,并且度为0的结点在同一层上,则这棵二叉树为满二叉树。:在完全二叉树中,除了最底层节点可能没填满外,其余每层节点数都达到最大值,并且最下面一层的节点都集中在该层最左边的若干位置。若最底层为第 h 层(h从1开始),则该层包含 1~ 2^(h-1) 个节点。:是一个有序树,若左子树并不为空,则左子树上所有结点的值均小于它的根结点的值。若右子子树不为空,则右子树上所有结点的值均大于它的根结点的值;
2024-01-23 16:06:23 886 1
原创 代码随想录1刷-day5,栈和队列
栈提供push 和 pop 等等接口,所有元素必须符合先进后出规则,所以栈不提供走访功能,也不提供迭代器(iterator)。不像是set 或者map 提供迭代器iterator来遍历所有元素。栈是以底层容器完成其所有的工作,对外提供统一的接口,底层容器是可插拔的(也就是说我们可以控制使用哪种容器来实现栈的功能)。deque是一个双向队列,只要封住一段,只开通另一端就可以实现栈的逻辑了。
2024-01-13 19:39:40 345 1
原创 代码随想录1刷-day3哈希表
哈希表也叫散列表,是根据关键码的值而直接进行访问的数据结构。std::unordered_set底层实现为哈希表,std::set 和std::multiset 的底层实现是红黑树,红黑树是一种平衡二叉搜索树,所以key值是有序的,但key不可以修改,改动key值会导致整棵树的错乱,所以只能删除和增加。
2024-01-09 18:33:38 333
原创 OSError: [Errno 22] Invalid argument:
OSError: [Errno 22] Invalid argument:
2022-08-15 16:04:23 1021 1
原创 【自学C】用选择法对10个整数排列
从待排序数列中选出最大的放在首位,两数交换位置#include<stdio.h>int main(void){ int max,buf; int num=0; int a[10] = { 3,18,32,76,89,102,23,43,78,99 }; for (int i = 0; i < 10; i++) { max = a[i]; for (int j =...
2022-02-21 10:32:25 322
原创 【自学C】用筛选法求100以内的素数。
筛选法求100以内的素数#include<stdio.h>int main(){ int a[2][100]; for (int i = 0; i < 100; i++) { a[0][i] = i + 1; a[1][i] = 1; //把标志位都置1,1表示是素数,0表示不是素数 } a[1][0] = 0; //先把1标志为非素数 for (i...
2022-02-21 10:28:29 404
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人