草庐IT

leedcode刷题(4)

全部标签

代码随想录刷题笔记 DAY 37 | 动态规划理论基础 | 斐波那契数 No.509 | 爬楼梯 No.70 | 使用最小花费爬楼梯 No.746

文章目录Day3700.动态规划理论基础01.斐波那契数(No.509)题目笔记代码02.爬楼梯(No.70)题目笔记代码03.使用最小花费爬楼梯(No.746)题目笔记代码Day3700.动态规划理论基础最常见的动态规划题目其实就是求最值,比如说股票问题、背包问题,都是在求使用怎样的策略能使得整个系统达到一个最优化的状态。这是否和贪心比较类似呢?其实贪心算法和动态规划算法的区别还是比较大的,贪心算法每一次的最优解一定包含上一次的最优解,是局部的最优推出全局的最优,而动态规划的最优解不一定包含前一次的最优解,而是有可能是由更前面的部分推出的,所以通常通过dp[]数组来将前面的所有最优解来保存下

【刷题】Leetcode 1609.奇偶树

Leetcode1609.奇偶树题目描述广度优先搜索(BFS)深度优先算法(DFS)思路一(BFS)思路二(DFS)Thanks♪(・ω・)ノ谢谢阅读!!!下一篇文章见!!!题目描述根据题目信息,我们可以整理出一些基本思路。首先我们需要想办法遍历每层数据其中需要记录二叉树当前深度。遍历的过程中进行判断,不符合要求就返回false基本就需要做到这两大板块就可以完成我们的任务了。重要的是这个过程如何实现:这里我们用到两个常用方法:广度优先搜索(BFS)和深度优先搜索(DFS)。下面初步解释一下两种算法:广度优先搜索(BFS)广度优先搜索是连通图的一种遍历算法,是很多重要图算法的原型(比如Dijks

蓝桥杯备考冲刺必刷题(Python) | 汇总

学习Python从娃娃抓起!记录下蓝桥杯备考比赛学习过程中的题目,记录每一个瞬间。1.蓝桥杯备考冲刺必刷题(Python)|1264排个序-CSDN博客2.蓝桥杯备考冲刺必刷题(Python)|527笨小猴-CSDN博客3.蓝桥杯备考冲刺必刷题(Python)|4983妮妮的翻转游戏-CSDN博客4.蓝桥杯备考冲刺必刷题(Python)|P152反倍数-CSDN博客5.蓝桥杯备考冲刺必刷题(Python)|P153洁净数-CSDN博客6.蓝桥杯备考冲刺必刷题(Python)|502成绩统计-CSDN博客7.蓝桥杯备考冲刺必刷题(Python)|P191特别数的和-CSDN博客8.蓝桥杯备考冲刺

【刷题】 Leetcode 1022.从根到叶的二进制数之和

刷题1022.从根到叶的二进制数之和题目描述:思路一(dfs深搜万能版)思路二(栈迭代巧解版)总结Thanks♪(・ω・)ノ谢谢阅读!!!下一篇文章见!!!1022.从根到叶的二进制数之和题目描述:题目给出一棵二叉树,我们需要统计计算每条路径的二进制之和。给出的测试用例是1,0,1,0,1,0,1则运算为:(100)+(101)+(110)+(111)=4+5+6+7=22。难点就在于如何进行每个节点的储存计算,一般来说二叉树都会使用遍历或栈来进行运算。那就让我们来看看这个题如何完美解答吧!!!思路一(dfs深搜万能版)一般我们遇到二叉树都会想到遍历,但是这道题我们需要做到是如何记录该节点之前

力扣刷题之旅:进阶篇(五)—— 动态规划(DP)的妙用

          力扣(LeetCode)是一个在线编程平台,主要用于帮助程序员提升算法和数据结构方面的能力。以下是一些力扣上的入门题目,以及它们的解题代码。  --点击进入刷题地址 引言:         在算法的世界中,动态规划(DynamicProgramming,DP)是一种非常重要的思想,它帮助我们解决了许多看似复杂的问题。在力扣(LeetCode)上,DP题目的挑战性和实用性都备受赞誉。今天,我们将深入探讨一道DP的经典题目:“打家劫舍”。题目描述:        你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,你希望偷窃得到的现金总额最大。但是,相邻的房屋装有

「优选算法刷题」:连续数组

一、题目给定一个二进制数组 nums ,找到含有相同数量的 0 和 1 的最长连续子数组,并返回该子数组的长度。示例1:输入:nums=[0,1]输出:2说明:[0,1]是具有相同数量0和1的最长连续子数组。示例2:输入:nums=[0,1,0]输出:2说明:[0,1](或[1,0])是具有相同数量0和1的最长连续子数组。提示:1nums[i] 不是 0 就是 1二、思路解析看到这道题,我的第一想法是遍历数组,然后用哈希表记录每次遍历的结果,与子数组长度最长的一次判断,然后更新结果。然后我在思考如何优化的时候,看到一位大神的奇特思路:•本题让我们找出⼀段连续的区间,0和 1出现的次数相同。•如

【刷题】leetcode 1544.整理字符串

刷题1544.整理字符串思路一(模拟栈速解版)思路二(原地算法巧解版)思路三(C++栈版)Thanks♪(・ω・)ノ谢谢阅读!!!下一篇文章见!!!1544.整理字符串来看题目描述我看到本题的第一想法是双指针法,但是我所构想的逻辑无法达到目的,具体来说我采用前后指针,依次前进,然后满足条件就跳过,这样就导致会忽略许多满足的结构,就让我十分头疼,调试了半天还是不行,甚至想要使用三指针,四指针…服啦!结果表明都是不行的。下面来一起看看正确解法吧思路一(模拟栈速解版)这个和括号匹配问题很像,把字符串依次入栈,然后满足条件的就一起消除,主要就用到栈的压栈操作和取栈顶操作。这样一一匹配就能达到要求。来看

【C语言必刷题】5.判断闰年

📚博客主页:爱敲代码的小杨.✨专栏:《JavaSE语法》|《数据结构与算法》|《C生万物》❤️感谢大家点赞👍🏻收藏⭐评论✍🏻,您的三连就是我持续更新的动力❤️🙏小杨水平有限,欢迎各位大佬指点,相互学习进步!文章目录🔥题目描述🔥解题思路🔥代码🔥扩展🔥题目描述使用C语言输出一个年份,判断这个年份是否为闰年。🔥解题思路判断闰年的方法:四年一闰百年不闰:即如果year能够被4整除,但是不能被100整除,则year是闰年。每四百年再一闰:如果year能够被400整除,则year是闰年。🔥代码#includeintmain(){ intyear=0; scanf("%d",&year); if(((yea

【刷题日记】贪心算法经典题目

😀大家好,我是白晨,一个不是很能熬夜😫,但是也想日更的人✈。如果喜欢这篇文章,点个赞👍,关注一下👀白晨吧!你的支持就是我最大的动力!💪💪💪文章目录🍊前言🍋贪心算法经典题目🌸1.分割平衡字符串🌹2.买卖股票的最佳时机🌺3.跳跃游戏🌻4.多机调度问题🌼5.活动选择🌷6.最多可以参加的会议数目🌱7.无重叠区间🍍总结🍊前言观前提示:此文章需要一定贪心算法的基础。大家好呀,我是白晨🧐。贪心算法算是一种比较耳熟能详的算法,只要求出局部最优解就可以得到整体的最优解,而且面试很喜欢出这种问题。但是,贪心算法其实并不好想,特别是有些问题比较绕的时候,你可能根本就想不到贪心算法。动态规划这个算法是从整体出发求整体

【刷题】牛客 JZ64 求1+2+3+...+n

刷题题目描述思路一(暴力递归版)思路二(妙用内存版)思路三(快速乘法版)思路四(构造巧解版)Thanks♪(・ω・)ノ谢谢阅读!!!下一篇文章见!!!题目描述根据题目描述,会有两个主要难点:1如何控制遍历,2如何计算。因为我们不能使用forwhileifelseswitchcase等关键字,对于如何实现1到n的遍历就显得十分困难。对此想出的策略有类构造函数,递归两种办法。如何计算注意规避掉公式法就好。思路一(暴力递归版)首先我们想到使用递归来实现:我们遇到的首要问题就是如何成功遍历:递归不难,但是如何保证遍历范围是1到n呢。这里使用短路处理在函数中,如果与运算成立,则继续,否则终止函数直接返回