草庐IT

leedcode刷题(4)

全部标签

2023-1-21 刷题情况

最少侧跳次数首先祝大家除夕快乐。题目描述给你一个长度为n的3跑道道路,它总共包含n+1个点,编号为0到n。一只青蛙从0号点第二条跑道出发,它想要跳到点n处。然而道路上可能有一些障碍。给你一个长度为n+1的数组obstacles,其中obstacles[i](取值范围从0到3)表示在点i处的obstacles[i]跑道上有一个障碍。如果obstacles[i]==0,那么点i处没有障碍。任何一个点的三条跑道中最多有一个障碍。比方说,如果obstacles[2]==1,那么说明在点2处跑道1有障碍。这只青蛙从点i跳到点i+1且跑道不变的前提是点i+1的同一跑道上没有障碍。为了躲避障碍,这只青蛙也可

算法刷题Day14 二叉树的前序、中序、后序遍历(递归、迭代、统一迭代方法)

Day14二叉树二叉树的定义/***Definitionforabinarytreenode.*structTreeNode{*intval;*TreeNode*left;*TreeNode*right;*TreeNode():val(0),left(nullptr),right(nullptr){}*TreeNode(intx):val(x),left(nullptr),right(nullptr){}*TreeNode(intx,TreeNode*left,TreeNode*right):val(x),left(left),right(right){}*};*/前序遍历递归classSol

【算法刷题】动态规划算法题型及方法归纳

动态规划特点动态规划中每一个状态一定是由上一个状态推导出来,根据这个特点,可以在状态计算过程中,存储某一条件下的数据,当再次遍历该条件时,直接取该条件对应的数据即可,可以避免重复计算,减少时间。核心思路:学会倒着推理,从当前情况反推,会在上一步会由哪些情况到达这一步,从而分析出状态转移过程和递推公式。另一个就是在进行DFS遍历的时候,作为记录表,进行记忆化搜索。解题步骤:动态规划五步曲(1)确定dp数组(dptable)以及下标的含义(2)确定递推公式(3)dp数组如何初始化(4)确定遍历顺序(5)举例推导dp数组参考文章:动态规划最强总结篇!1、动态规划基础题斐波那契数列:dp[i]=dp[

算法刷题Day 22 二叉搜索树的最近公共祖先+二叉搜索树中的插入操作+删除二叉搜索树中的节点

Day22二叉树235.二叉搜索树的最近公共祖先根据二叉搜索树的性质,相比普通二叉树可以极大程度的简化代码,作为公共祖先其值一定在两个给定节点值之间,从树根往下遍历,第一次出现两个给定节点值之间的值,那个节点即为最近公共祖先(为什么是最近不是最远?根节点一般为最远,第一次出现的值处于两个给定节点值之间的节点为最近)递归法classSolution{public:TreeNode*lowestCommonAncestor(TreeNode*root,TreeNode*p,TreeNode*q){if(!root)returnnullptr;if(root->valp->val&&root->va

力扣python刷题day03|LeetCode203、707、206

力扣python刷题day03|LeetCode203、707、206LeetCode203:移除链表元素题目方法一:知识点:LeetCode707:设计链表题目方法一:单链表法方法二:双链表法LeetCode206:反转链表题目:方法一:双指针法方法二:递归法知识点:LeetCode203:移除链表元素题目题目链接:203:移除链表元素方法一:classSolution:defremoveElements(self,head:Optional[ListNode],val:int)->Optional[ListNode]:dummy_head=ListNode(next=head)curren

【数据结构刷题】消失的数字和轮转数组

目录一.消失的数字 方法一:异或全部元素方法二:利用等差数列求和-该数组全部元素之和。二.轮转数组题型1:实现一个函数,可以左旋字符串中的k个字符。写法1:暴力求解根据该题写出右旋转写法2:三步旋转法(左逆序,右逆序,整体逆序) 根据左旋转写右旋转题型2:写一个函数,判断一个字符串是否为另外一个字符串旋转之后的字符串。方法1:根据strcmp函数比较两者字符串的ascll码值。方法2:通过strstr函数查找题型3:给定一个整数数组 nums,将数组中的元素向右轮转 k 个位置,其中 k 是非负数。思路1:实际上就是右旋字符串,跟上面第一题的左旋字符串有着异曲同工之妙。思路2:三步旋转法(搞清

华为OD机试注意事项,备考思路,刷题要点,答疑,od Base 提供

华为OD机试是华为公司用于招聘岗位的一种在线编程测试,通常要求应聘者在规定的时间内完成一定数量的编程题目,以测试其编程能力和解决问题的能力。本篇博客就华为OD机试注意事项,备考思路,刷题要点,答疑为大家一一阐述。备考思路,刷题要点,答疑,odBase提供一、od机试备考中问的最多的问题:考原题吗?二、华为OD机试注意点题型时长监控规则考试结果三、华为OD机试题中的常考知识点数据结构算法字符串数学运算动态规划图论算法四、华为OD机试知识点备考注意事项五、华为od机试中出现的高频代码输入输出模板排序算法模板链表模板栈模板一、od机试备考中问的最多的问题:考原题吗?经常有朋友问,互联网这么多华为OD

华为OD机试注意事项,备考思路,刷题要点,答疑,od Base 提供

华为OD机试是华为公司用于招聘岗位的一种在线编程测试,通常要求应聘者在规定的时间内完成一定数量的编程题目,以测试其编程能力和解决问题的能力。本篇博客就华为OD机试注意事项,备考思路,刷题要点,答疑为大家一一阐述。备考思路,刷题要点,答疑,odBase提供一、od机试备考中问的最多的问题:考原题吗?二、华为OD机试注意点题型时长监控规则考试结果三、华为OD机试题中的常考知识点数据结构算法字符串数学运算动态规划图论算法四、华为OD机试知识点备考注意事项五、华为od机试中出现的高频代码输入输出模板排序算法模板链表模板栈模板一、od机试备考中问的最多的问题:考原题吗?经常有朋友问,互联网这么多华为OD

算法刷题Day 16 二叉树的最大深度+N叉树的最大深度+二叉树的最小深度+完全二叉树的节点个数

104.二叉树的最大深度递归法classSolution{public:intmaxDepth(TreeNode*root){if(root==nullptr)return0;returnmax(maxDepth(root->left),maxDepth(root->right))+1;}};迭代法使用层序的方法,相对比较好理解classSolution{public:intmaxDepth(TreeNode*root){if(!root)return0;queueTreeNode*>que;que.push(root);intmaxD=0;while(!que.empty()){intlen

算法图类型刷题

基础部分使用的基础数据结构和方法classSolution{int[][]dirs=newint[][]{{1,0},{-1,0},{0,1},{0,-1}};int[][]grid;  //预处理部分  …………………………  //开始计算  for(inti=0;i=0&&j>=0&&i第一题:广度优先算法:publicint[][]floodFill(int[][]image,intsr,intsc,intcolor){if(image==null||image.length==0||image[0].length==0){returnimage;}//排除特殊情况intfirstcol