草庐IT

LeetCode刷题之树

全部标签

Leetcode笔记2

8.字符串转换整数(atoi)题目链接自动机思路字符串处理的题目往往涉及复杂的流程以及条件情况,如果直接上手写程序,一不小心就会写出极其臃肿的代码。因此,为了有条理地分析每个输入字符的处理方法,我们可以使用自动机这个概念:我们的程序在每个时刻有一个状态s,每次从序列中输入一个字符c,并根据字符c转移到下一个状态s'。这样,我们只需要建立一个覆盖所有情况的从s与c映射到s'的表格即可解决题目中的问题。算法本题可以建立如下图所示的自动机:image.png状态表(略)接下来编程部分就非常简单了:我们只需要把状态转换表抄进代码即可。另外自动机也需要记录当前已经输入的数字,只要在s'为in_numbe

leetcode刷题之背包问题(01背包)

01背包概念:有n件物品和一个最多能背重量为w的背包。第i件物品的重量是weight[i]weight[i]weight[i],得到的价值是value[i]value[i]value[i]。每件物品只能用一次,求解将哪些物品装入背包里物品价值总和最大。方法1:暴力回溯法方法2:动态规划三个物品,物品的重量分别为{1,3,4},物品的价值分别为{15,20,30};背包最大容量为4。(一)二维dp数组确定dp数组以及下标的含义:dp[i][j]dp[i][j]dp[i][j]代表从下标为[0,i]的物品中任意取,放到容量为j的背包里,价值总和最大是多少。确定递推公式不放物品i的最大价值:dp[i

【Python刷题篇】——Python入门 09 字典(上)

?‍♂️个人主页:@北极的三哈个人主页?‍?作者简介:Python领域新星创作者。?系列专栏:《牛客题库-Python篇》?推荐《牛客网》——找工作神器|笔试题库|面试经验|实习经验内推,求职就业一站解决?点击链接进行注册学习牛客题库《

LeetCode:376. 摆动序列——说什么贪心和动规~

🍎道阻且长,行则将至。🍓🌻算法,不如说它是一种思考方式🍀算法专栏:👉🏻123一、🌱376.摆动序列题目描述:如果连续数字之间的差严格地在正数和负数之间交替,则数字序列称为摆动序列。第一个差(如果存在的话)可能是正数或负数。仅有一个元素或者含两个不等元素的序列也视作摆动序列。例如,[1,7,4,9,2,5]是一个摆动序列,因为差值(6,-3,5,-7,3)是正负交替出现的。相反,[1,4,7,2,5]和[1,7,4,5,5]不是摆动序列,第一个序列是因为它的前两个差值都是正数,第二个序列是因为它的最后一个差值为零。子序列可以通过从原始序列中删除一些(也可以不删除)元素来获得,剩下的元素保持其原始

华为OD机试 - 对称美学 | 备考思路,刷题要点,答疑 【新解法】

华为OD机试题本题题解:对称美学题目输入内容输出内容示例一输入输出说明示例二输入输出说明备注编码思路核心知识点Python代码实现代码运行结果使用说明版权说明最近更新的博客华为od2023|什么是华为o

LeetCode | 一探环形链表的奥秘【快慢双指针妙解BAT等大厂经典算法题】

前言本文总结了力扣141.环形链表|以及142.环形链表||这两道有关环形链表的求解方案,去求证链表是否带环已经如何找出入环口的结点。有关环形链表,在BAT等大厂面试中均有出现,一般是属于中等难度的题,需掌握环形链表|&&环形链表||一、题目描述二、思路分析与罗列三、证明:1、【为何快指针每次走两步,慢指针走一步一定能相遇?】2、【快指针一次走3步,走4步,...n步行吗?】四、进阶:如何求出环的入口结点Way1:头结点到入口结点的距离剖析求证Way2:环形链表转相交链表【秒不可言】五、疑难解惑:为什么快指针会在慢指针进入环内的第一圈就相遇?原理图六、整体代码展示1、环形链表|2、环形链表||

【LeetCode】螺旋矩阵&&旋转图像

​🌠作者:@阿亮joy.🎆专栏:《阿亮爱刷题》🎇座右铭:每个优秀的人都有一段沉默的时光,那段时光是付出了很多努力却得不到结果的日子,我们把它叫做扎根目录👉螺旋矩阵👈👉螺旋矩阵II👈👉旋转图像👈👉总结👈👉螺旋矩阵👈给你一个m行n列的矩阵matrix,请按照顺时针螺旋顺序,返回矩阵中的所有元素。示例1:输入:matrix=[[1,2,3],[4,5,6],[7,8,9]]输出:[1,2,3,6,9,8,7,4,5]示例2:输入:matrix=[[1,2,3,4],[5,6,7,8],[9,10,11,12]]输出:[1,2,3,4,8,12,11,10,9,5,6,7]提示:m==matrix.l

华为OD机试 - 最近的点 | 备考思路,刷题要点,答疑 【新解法】

最近更新的博客【新解法】华为OD机试-关联子串|备考思路,刷题要点,答疑,odBase提供【新解法】华为OD机试-停车场最大距离|备考思路,刷题要点,答疑,odBase提供【新解法】华为OD机试-任务调度|备考思路,刷题要点,答疑,odBase提供【新解法】华为OD机试-英文输入法|备考思路,刷题要点,答疑,odBase提供【新解法】华为OD机试-流水线|备考思路,刷题要点,答疑,odBase提供最近的点题目同一个数轴x有两个点的集合A={A1,A2,...

【Leetcode】消失的数字 [C语言实现]

👻内容专栏:《Leetcode刷题专栏》🐨本文概括:面试17.04.消失的数字🐼本文作者:花碟🐸发布时间:2023.4.10目录思想1:先排序再查找思想2:异或运算代码实现: 思想3:等差数列求和相减代码实现:  点击跳转到Leetcode的OJ平台 17.04消失的数字  题目:数组nums包含从0到n的所有整数,但其中缺了一个。请编写代码找出那个缺失的整数。你有办法在O(n)时间内完成吗?intmissingNumber(int*nums,intnumsSize);示例1:​ 示例2:​ 分析:1.数组中经过排列后是一串有序列的整数,只不过序列中缺失了一个整数,题目需要让你找出这个缺失的数

高频算法题冒险之旅精讲(一)之LeetCode小牛试刀五道题

📢导读:本篇博文是LeetCode算法题讲解篇,对高频算法题进行详细而深入的讲解,解题语言选择的是Java。更多算法专栏如下:⛳️排序算法⛳️分治法⛳️LeetCode高频算法题讲解⛳️数据结构目录⛳️1.只出现一次的数字(第136题)1.1题目:1.2解题思路及完整Java代码1.2.1用map1.2.2用set1.2.3用位运算⛳️2.多数元素(第169题)2.1题目:2.2解题思路及完整Java代码2.2.1使用map去存储元素出现的次数2.2.2排序后直接输出2.2.3摩尔投票法⛳️3.搜索二维矩阵II(第240题)3.1题目:3.2解题思路及完整Java代码3.2.1暴力解法3.2.