![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
-点灯-
这个作者很懒,什么都没留下…
展开
-
【c++】std::string分隔转换成float
利用分隔符将string类型转换乘数字原创 2022-10-20 10:29:56 · 907 阅读 · 1 评论 -
Djkstra总结
Djkstra总结迪杰斯特拉(Dijkstra)算法是典型最短路径算法,用于计算一个节点到其他节点的最短路径。它的主要特点是以起始点为中心向外层层扩展(广度优先搜索思想),直到扩展到终点为止。1、指定一个节点,例如我们要计算 ‘A’ 到其他节点的最短路径2、引入两个集合(S、U),S集合包含已求出的最短路径的点(以及相应的最短长度),U集合包含未求出最短路径的点(以及A到该点的路径,没有直接相连初始时为∞)3、初始化两个集合,S集合为空,U集合中A->A = 0,其他节点为∞。4、从U集合原创 2020-07-23 17:34:03 · 855 阅读 · 0 评论 -
A*算法总结
A*算法总结原文地址:https://blog.csdn.net/weixin_44489823/article/details/893825021、把起点加入 open list 。2、重复如下过程:a、遍历 open list ,查找 F 值最小的节点,把它作为当前要处理的节点。b、把这个节点移到 close list 。c、对当前方格的 8 个相邻方格的每一个方格?◆ 如果它是不可抵达的或者它在 close list 中,忽略它。否则,做如下操作。◆ 如果它不在 ope原创 2020-07-23 16:32:31 · 436 阅读 · 0 评论 -
RRT、RRT_Connect、RRT*
RRT节点包括:在地图上的坐标,父节点的指针,从起始点移动到该节点的代价值。• 将地图坐标点处理为节点。• 树上节点集合A。• 开始节点S。• 目标节点G。• 随机节点R。• 树上距离R最近的节点N。• 搜索距离p。1、将节点S加入树A中。2、在地图上产生一个随机节点R。3、找到A中距离R最近的节点N。4、由N朝着R搜索p得到一个新的节点Q。5、判断Q与G的距离是否小于一定阀值,若是则执行10。6、判断Q是否为可行点,若是则将Q的父节点设置为N。7、重复2-6。10、得出路径原创 2020-07-21 17:58:17 · 4000 阅读 · 0 评论 -
存在重复元素
存在重复元素题目:给定一个整数数组,判断是否存在重复元素。如果任意一值在数组中出现至少两次,函数返回 true 。如果数组中每个元素都不相同,则返回 false 。方法一利用std::set类型bool containsDuplicate(std::vector<int>& nums){ std::set<int> set_tem; for(auto i:nums) { if(set_tem.count(i) != 1) set_原创 2020-06-11 17:24:10 · 184 阅读 · 0 评论 -
只出现一次的数字
只出现一次的数字题目给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。要求:具有线性时间复杂度。不使用额外空间。出自:力扣参考答案利用异或特点(不带进位的二进制按位相加),几个数做异或运算结果与异或的顺序无关,将所有的数进行异或即可得到答案。int singleNumber(std::vector<int>& nums){ int single_num = 0; for(size_t i=0;i<nu原创 2020-06-11 16:13:11 · 84 阅读 · 0 评论 -
买卖股票的最佳时机 II
买卖股票的最佳时机 II题目给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。同一天你可以卖出后再买入。来源:力扣(LeetCode)参考答案int maxProfit(vector<int>& prices) { size_t num = prices.size(); int原创 2020-06-11 15:04:29 · 106 阅读 · 0 评论 -
旋转数组
旋转数组题目要求给定一个数组,将数组中的元素向右移动 k 个位置,其中 k 是非负数。示例 1:输入: [1,2,3,4,5,6,7] 和 k = 3输出: [5,6,7,1,2,3,4]解释:向右旋转 1 步: [7,1,2,3,4,5,6]向右旋转 2 步: [6,7,1,2,3,4,5]向右旋转 3 步: [5,6,7,1,2,3,4]示例 2:输入: [-1,-100,3,99] 和 k = 2输出: [3,99,-1,-100]解释:向右旋转 1 步: [99,-1,-原创 2020-05-28 18:16:17 · 91 阅读 · 0 评论 -
删除排序数组中的重复项
删除排序数组中的重复项要求:给定一个排序数组,你需要在 原地 删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。示例 1:给定数组 nums = [1,1,2],函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为 1, 2。你不需要考虑数组中超出新长度后面的元素。示例 2:给定 nums = [0,0,1,1,1,2,2,3,3,4],函数应该返回新的长度原创 2020-05-28 11:25:32 · 122 阅读 · 0 评论