算法
文章平均质量分 52
苓一在学习
能做自己喜欢的事情就很厉害
展开
-
c++使用dfs实现八个方向搜索问题
题目如下:题目描述给一n×n的字母方阵,内可能蕴含多个“yizhong”单词。单词在方阵中是沿着同一方向连续摆放的。摆放可沿着 88 个方向的任一方向,同一单词摆放时不再改变方向,单词与单词之间可以交叉,因此有可能共用字母。输出时,将不是单词的字母用*代替,以突出显示单词。例如:输入: 8 输出: qyizhong *yizhong gydthkjy gy****** nwid原创 2022-03-19 20:56:38 · 1559 阅读 · 0 评论 -
二分查找模板(c++)
模板一:二分查找的最基础和最基本的形式。查找条件可以在不与元素的两侧进行比较的情况下确定(或使用它周围的特定元素)。不需要后处理,因为每一步中,你都在检查是否找到了元素。如果到达末尾,则知道未找到该元素。int binarySearch(vector<int>& nums, int target){ if(nums.size() == 0) return -1; int left = 0, right = nums.size() - 1; while(lef原创 2022-04-06 20:39:33 · 239 阅读 · 0 评论 -
已知二叉树前(后)序和中序求后(前)序遍历(c++)
注:二叉树无法根据前序后序求中序,因为结果不唯一对于二叉树生成思维不清楚的可以看看-》如何求前序后序的思路1.已知后序中序求前序先序:根左右 中序:左根右 后序:左右根例:已知中序BADC,后序BDCA要求先序先根据后序确定根节点为a,在根据根节点a将中序分为左右两个树,左边为先序的左边节点b,直至所有左边节点遍历完,左边节点数为k-c1然后向右遍历,重复上述操作#include<bits/stdc++.h>using namespace std;const int N=原创 2022-04-05 15:28:30 · 1212 阅读 · 0 评论 -
c++使用动态规划求解01背包问题
- 什么是01背包问题?在01背包问题中,因为每种物品只有一个,对于每个物品只需要考虑选与不选两种情况。如果不选择将其放入背包中,则不需要处理。如果选择将其放入背包中,由于不清楚之前放入的物品占据了多大的空间,需要枚举将这个物品放入背包后可能占据背包空间的所有情况。需要注意的是:01背包问题不能使用贪心思想,因为每次选取最大的并不能保证背包刚好装满,遇到01背包问题先找到题目中的“背包”和“物品”,写出状态转移方程。例题:【问题描述】发鸠之山,其上多柘木。有鸟焉,其状如乌,文首,白喙,赤足,原创 2022-03-23 15:24:32 · 1674 阅读 · 0 评论