![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
机器人仿真
探索者FXJ
这个作者很懒,什么都没留下…
展开
-
Leetcode典型题解答和分析、归纳和汇总——T543(二叉树的直径)
问题描述:给定一颗二叉树,你需要计算它的直径长度。问题分析:本题是一个典型的二叉树递归算法考察。我们需要分别计算出最长的左右子树,然后对最长进行返回。class Solution{ int Maxlen = 0; public: int diameterOfBinaryTree(TreeNode* root) { helper(roo...原创 2020-03-16 15:35:02 · 212 阅读 · 0 评论 -
Leetcode典型题解答和分析、归纳和汇总——T461(汉明距离)
问题描述:两个整数之间的汉明距离是指这两个数字对应二级制位不同的位置的数目。给出两个整数X和Y,计算它们之间的汉明距离。注意数据是否会溢出。问题分析:本题我们将采用位运算的的方式来进行求解。每次都将数据进行末尾比较,如果相同,则距离保持不变,否则距离加一class Solution {public: int hammingDistance(int x, in...原创 2020-03-16 15:02:08 · 143 阅读 · 0 评论 -
Leetcode典型题解答和分析、归纳和汇总——T437(总路径和III)
问题描述:给定一个二叉树,它的每个节点都存放着一个整数值,找出路径和等于给定数值的路径总数。路径不需要从根节点开始,也不需要从叶子节点结束,但是路径方向必须是从上到下的。问题分析:本题可以采用递归算法:【1】从根节点开始,如果根节点为空,则返回为0;【2】根节点可以组成的路径数+左孩子节点的路经数+右孩子节点的路径数(第一层递归)【3】递归求解本节点的路径数(DFS...原创 2020-03-16 14:10:07 · 122 阅读 · 0 评论 -
Leetcode典型题解答和分析、归纳和汇总——T338(比特位计数)
问题描述:给定一个非负整数num,对于0<i<nums范围中的每个数字i,计算其二进制数中1的个数,并将其返回。问题分析:本题考察数学知识,主要在于如何处理数学中的二进制问题。当一个数是奇数的时候,它的1的个数等于前面一个偶数+1;而当是偶数的时候,它的1的个数等于前面一个偶数右移一位的个数。class Solution{ public: ...原创 2020-03-16 11:13:10 · 136 阅读 · 0 评论 -
Leetcode典型题解答和分析、归纳和汇总——T322(零钱兑换)
问题描述:给定不同面额的硬币coins和一个总金额amount。编写一个函数可以计算凑成这个金额的最少硬币。如果没有这个组合,返回-1。问题分析:直观解决办法是从最大面额进行匹配,这样做会让硬币数额最少。...原创 2020-03-16 10:24:32 · 207 阅读 · 0 评论 -
Leetcode典型题解答和分析、归纳和汇总——T283(移动零)
问题描述:给定一个数组nums,编写一个函数将所有0移动到数组的末尾,同时保持非零元素的相对顺序。问题分析:本题单纯考察数学类问题,我们只需要用两个指针变量i,j,然后进行遍历,对于nums[i]非0的数,进行入数组操作nums[j]=nums[i],否则继续遍历,对于最后的0元素填补,则用for循环继续进行。class Solution {public: void ...原创 2020-03-15 15:26:06 · 132 阅读 · 0 评论 -
Leetcode典型题解答和分析、归纳和汇总——T240(搜索二维矩阵II)
问题描述:编写一个高效算法来搜索矩阵中的目标值target。该矩阵有以下特性:(1)每行元素从左到右升序排列;(2)每列元素从上到下升序排列。问题分析:这是一个非常有特点的矩阵,由于是有序的,因此我们有如下思路:【1】从左下角开始搜索;【2】如果当前位置大于target,则说明target不可能在下方或者右方,将范围缩小到上方;【3】如果当前位置小于target...原创 2020-03-15 14:48:41 · 137 阅读 · 0 评论 -
Leetcode典型题解答和分析、归纳和汇总——T238(除自身外数组的乘积)
问题描述:给你一个长度为n的整型数组nums,其中n>1,返回输出数组output,其中outpu[i]是等于除nums[i]之外的其余元素的乘积。注意:时间复杂度为O(n),并且空间复杂度为O(1),不能使用除法!!!问题分析:我们可以用数学关系式:乘积 = 当前数左边的乘积*当前数右边的乘积。class Solution {public: vect...原创 2020-03-15 11:19:19 · 134 阅读 · 0 评论 -
Leetcode典型题解答和分析、归纳和汇总——T234(回文链表)
问题描述:请判断一个链表是否为回文链表。要求:采用时间复杂度为O(n)和空间复杂度为O(1)。问题分析:要时空间复杂度为常数级别,则必须采用常规的快慢指针方式,而且最多只能遍历一次。我们使用快慢指针的同时还翻转前半部分,然后与后半部分进行比较。class Solution{ public: bool isPalindrome(ListNode* head){ ...原创 2020-03-15 10:11:05 · 165 阅读 · 0 评论 -
Leetcode典型题解答和分析、归纳和汇总——T221(最大正方形)
问题描述:在一个由0和1组成的二维矩阵中,找到只包含1的最大正方形,并返回其面积。问题分析:这是一道典型的数学类的题目。需要明确一点是考察动态规划方面的知识。【1】我们用o来初始化另一个矩阵dp,而且维数和原数组相同;【2】dp数组中的每个元素表示由1组成的最大正方形的边长,如dp[i][j] = 2,表示到(i,j)这个位置,可以组成最长正方形的边为2;【3】从初始位...原创 2020-03-15 09:32:21 · 329 阅读 · 0 评论 -
Leetcode典型题解答和分析、归纳和汇总——T215(数组中的第K个最大元素)
问题描述:在未排序的数组中找到第K个最大的元素。请注意,你需要找的是数组排序后的第K个最大元素,而不是第K个不同的元素。、问题分析:这里我们给出三种典型的解法:【1】使用库函数的方法:sort()class Solution{ public: int findKthLargest(vector<int>& nums, int k) { ...原创 2020-03-14 23:03:09 · 81 阅读 · 0 评论 -
Leetcode典型题解答和分析、归纳和汇总——T207(课程表)
问题描述:你这个学期必修numCourse门课程,记为0到numCourse-1。在选修某些课程之前需要一些先修课程,例如,在想要修读课程0,先要完成课程1,我们用一个匹配来表示他们:[0,1]。给定课程总数以及它们的先决条件,请判断是否可以完成所有课程的学习。问题分析:首先对于这类问题,我们需要采用一种新的数据结构来表征:AOE(Active on Edge)网,是一种有向无环图...原创 2020-03-14 21:30:59 · 132 阅读 · 0 评论 -
Leetcode典型题解答和分析、归纳和汇总——T200(岛屿数量)
问题描述:给定一个由"1"和"0"组成的二维网格,计算岛屿的数量。一个岛被水包围,并且它是通过水平或者吹着方向上相邻的陆地相连接而组成的。你可以假设网格的四个边都被水包围。问题分析:本题我们可以采用深度优先搜索算法来实现。 要把这个网格看成是岛屿,则必须从“1”数字开始进行搜索,因为只有陆地才有可能成为岛屿,然后再进行深度遍历,直到出现以下情况(1):越界;(2)全部遍历完成才进行...原创 2020-03-14 11:09:05 · 169 阅读 · 0 评论 -
Leetcode典型题解答和分析、归纳和汇总——T169(多数元素)
问题描述:给定一个大小为n的数组,找到其中大多数的元素。大多数元素是指在数组中出现次数大于n/2的元素。问题分析:我们只要将这个数组进行排序,然后输出中间值即可。class Solution {public: int majorityElement(vector<int>& nums) { int len = nums.size(...原创 2020-03-14 10:10:08 · 82 阅读 · 0 评论 -
Leetcode典型题解答和分析、归纳和汇总——T155(最小栈)
问题描述:设计一个支持push,top,pop操作,并能在常数时间内检索到最小元素的栈。问题分析:本题其实就是考察栈的基本操作:如入栈s.push(x),出栈s.pop(),查看栈顶元素值s.top()等,然后对于要查看的最小值,我们可以采用第二个最小值栈进行保存处理,每次入栈一个元素,我们就把最小的元素保存起来。class MinStack {public: st...原创 2020-03-12 11:38:36 · 100 阅读 · 0 评论 -
Leetcode典型题解答和分析、归纳和汇总——T152(乘积最大子序列)
问题描述:给定一个整数数组nums,找出一个序列中乘积最大的连续子序列(该序列至少包含一个数)问题分析:本题我们可以采用贪心算法或者动态规划算法。class Solution{ public: int maxProduct(vector<int>& nums){ if(nums.empty()) return 0; if(nums.size(...原创 2020-03-12 11:19:15 · 103 阅读 · 0 评论 -
Leetcode典型题解答和分析、归纳和汇总——T151(翻转字符串里面的单词)
问题描述:给定一个字符串,逐个翻转字符串里面的单词。问题分析:本题我们主要采用反转的思路。【1】定位到单词左右两边的第一个非空字母上(left、right);【2】采用反转函数reverse将整个字符串所有字母调转顺序;【3】然后对字符串中的逐个单词进行逆序调整;【4】最后去除掉字符串中多余的空字符。class Solution {public: v...原创 2020-03-12 11:06:40 · 118 阅读 · 0 评论 -
Leetcode典型题解答和分析、归纳和汇总——T147(对链表进行插入排序)
问题描述:对链表进行插入排序:【1】插入排序是迭代的,每次只移动一个元素,直到所有元素可以形成一个有序的输出列表。【2】每次迭代中,插入排序只从输入数据中移除一个待排序的元素,找到它在序列中适当的位置,并将其插入。【3】重复直到所有输入数据插入完为止。问题分析:本题考察的是插入排序,只是其基本的数据结构为:链表!!我们非常熟悉数组类型的数据,但是这种带指针类型的数据存在一些...原创 2020-03-11 21:22:10 · 94 阅读 · 0 评论 -
Leetcode典型题解答和分析、归纳和汇总——T145(二叉树的后序遍历)
问题描述:给定一个二叉树,返回它的后序遍历。问题分析:这个与二叉树的前序遍历一样,但是顺序要改为左->右->头节点的顺序。这里我们采用迭代算法来求解。主要是采用数据结构中的“栈”的思想。具体的操作如下:我们先将根节点入栈,然后进行如下循环:(1)查看栈顶元素top,(2)如果top有左节点,则把左节点入栈;(3)如果top没有左节点,则把右节点入栈‘...原创 2020-03-11 20:25:20 · 119 阅读 · 0 评论 -
Leetcode典型题解答和分析、归纳和汇总——T143(重排链表)
问题描述:问题分析:这是一个非常有意思的排序问题,相当于是“强弱搭配”游戏,第一个与最后一个,倒数第二个和顺数第二个搭配起来。于是我们可以考虑采用双指针的方式进行递归链表重新连接。/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *nex...原创 2020-03-11 17:52:53 · 109 阅读 · 0 评论 -
Leetcode典型题解答和分析、归纳和汇总——T141(环形链表)
问题描述:给定一个链表,请判断链表中是否有环。为了表示给定链表中的环,我们使用整数pos来表示链表尾链接到链表中的位置(索引从0开始),如果pos是-1,则在链表中没有环。问题分析:本题我们可以采用快慢指针来进行求解。假设快指针是慢指针的1倍速度,那么如果成环的话,肯定会在某一次遍历之后出现fast = slow的情况。于是就说这个链表是形成了环。/** * Def...原创 2020-03-11 11:04:26 · 84 阅读 · 0 评论 -
Leetcode典型题解答和分析、归纳和汇总——T138(复制带随机指针的链表)
问题描述:给定一个链表,每个节点包含一个额外增加的随机指针,该指针可以指向链表中的任何节点或空节点。要求返回这个链表的深拷贝。问题分析:首先我们需要明确一个概念:什么是链表的深拷贝和浅拷贝。浅拷贝:在有指针的情况下,浅拷贝只是增加了一个指针指向已经存在的内存,即新增了一个指针,内存并没有重新开辟;深拷贝:除了新增加一个指针,还新申请了一个内存,使这个增加的指针指...原创 2020-03-11 10:22:20 · 124 阅读 · 0 评论 -
机器人仿真平台Webots(R2019a为例)、V-rep详细介绍
当下,机器人研究是一个非常火热的方向,但由于受到物理条件或者经济条件限制,我们无法直接购买实体机器人来进行研究操作,此时我们需要采用仿真平台来进行操作。仿真实验可以给我们带来同样的操作效果,而且节省很多设备调试开发的周期,非常实用。仿真的主要意义不在于取代实际的硬件,而是在于提供一个一致性较好、不确定因素可控的评估对象/环境。仿真软件中主要模仿的机器人对象有以下三个部分:【1】机器人本体的...原创 2020-03-09 16:16:39 · 7896 阅读 · 1 评论