草庐IT

刷题题单

全部标签

【寸铁的刷题笔记】图论、bfs、dfs

【寸铁的刷题笔记】图论、bfs、dfs大家好我是寸铁👊金三银四,图论基础结合bfs、dfs是必考的知识点✨快跟着寸铁刷起来!面试顺利上岸👋喜欢的小伙伴可以点点关注💝🌞详见如下专栏🌞🍀🍀🍀寸铁的刷题笔记🍀🍀🍀200.岛屿数量考点递归、dfs思路思路:遍历二维数组,遇到陆地则计数器加1然后,向该陆地上、下、左、右四个方向进行搜索。遇到边界则停止搜索,如果搜索到的网格为陆地,则说明该网格和遍历到的陆地连通。同时,把该搜索到的陆地'1',置为海洋'0'由于之前遍历二维数组时遇到陆地时计数器加1,由于连通,算作1个岛屿。这样就避免下次遍历二维数组时重复遍历陆地,导致岛屿数量多算了。代码classSolu

代码随想录刷题笔记 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出现的次数相同。•如

算法题目题单+题解——图论

简介本文为自己做的一部分图论题目,作为题单列出,持续更新。题单由题目链接和题解两部分组成,题解部分提供简洁题意,代码仓库:Kaiser-Yang/OJProblems。对于同一个一级标题下的题目,题目难度尽可能做到递增。搜索/BFS/DFSLuoguP3547[POI2013]CEN-PriceList题目链接:LuoguP3547[POI2013]CEN-PriceList题解:LuoguP3547[POI2013]CEN-PriceList题解BFS广度优先搜索最小生成树/Kruskal/Prim/Kruskal重构树/最小瓶颈树LibreOJ136.最小瓶颈路题目链接:LibreOJ13

十五届蓝桥杯第三期模拟赛题单(C++、java、Python)

备战2024年蓝桥杯  省赛第三期模拟赛题单备战Python大学A组第一题【问题描述】  请问2023有多少个约数?即有多少个正整数,使得2023是这个正整数的整数倍。【问题描述】  这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。【解题思路】:语法【Python程序代码】ans=0foriinrange(1,2024):if2023%i==0:ans+=1print(ans)最终结果:6第二题【问题描述】  请问有多少组整数对l,r满足:  1.l和r都介于0(含)到100(含)之间;  2.r-l>=10。【答案

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

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