第十一天|queue and stack-爱代码爱编程
今天的题是这两个数据结构的应用 20. Valid Parentheses 这道题不难,两种方法均需要用到stack Way1: 第一种方法是用dictionary来存一个mapping,然后每次判断是否再dic里面,并采取不同的措施,但是注意不在dic的情况 class Solution: def isValid(self, s: st
代码编织梦想
今天的题是这两个数据结构的应用 20. Valid Parentheses 这道题不难,两种方法均需要用到stack Way1: 第一种方法是用dictionary来存一个mapping,然后每次判断是否再dic里面,并采取不同的措施,但是注意不在dic的情况 class Solution: def isValid(self, s: st
今天复习哈希表,Python中哈希表常用dict(各种defaultdict, OrderedDict等等),先看看哈希表基础内容。简单来说,哈希表又叫散列表,将键值对中的键映射到散列表中的一个位置,可以加快查找的速度。对应的映射函数称为哈希函数(散列函数),类似于数组中直接用index获取元素值,dict中代入key获得的哈希函数值就是index,可以O
LeetCode 93 复原IP地址 题目链接:93. 复原 IP 地址 - 力扣(Leetcode) 这一题和分割回文串是一个思路,只需要将判断字符串是否回文的条件换成判断字符串代表的数字是否在合适范围。前导零的判断代码应该还可以更精简一些,一开始只判断了大于0的数字是否含有前导零,忽略了0本身也可能包含多个零,这种IP也不是有效的。另外还要注意收
LeetCode 491 递增子序列 题目链接:491. 递增子序列 - 力扣(Leetcode) 乍一看和子集问题很像,但自己写还真不容易写出来,没有用used记录当前一层遍历已经使用过的元素时,结果集合会出现重复,也不能直接套用子集问题的去重方式。 class Solution: def __init__(self): s
LeetCode 344 反转字符串 题目链接:344. 反转字符串 - 力扣(Leetcode) 由于题目要求原地修改,因此必须使用双指针进行前后交换,实现反转字符串(列表形式): class Solution: def reverseString(self, s: List[str]) -> None: """
LeetCode 62 不同路径 题目链接:62. 不同路径 - 力扣(Leetcode) 不同路径算是二维dp的简单题了, 根据题意可以知道到达每个网格的不同路径可以有两个来源,递推关系就是累加这两个方向的不同路径数量,就能得到到达当前网格的不同路径总数: class Solution: def uniquePaths(self, m: i
理论基础 动态规划的应用前提是有重叠子问题,通过子问题状态推导获得问题的最终解。第二次做动态规划的题了,希望这次能对动态规划有更透彻的理解。 LeetCode 509 斐波那契数 题目链接:509. 斐波那契数 - 力扣(Leetcode) 斐波那契数列是经典动态规划入门题,但其实根据题目描述进行模拟也可以解题: class Solution:
文章目录 题目解决步骤思路:哈希表思路步骤代码实现 双指针法思路步骤代码实现 题目 JZ23 链表中环的入口结点 给一个长度为n链表,若其中包含环,请找出该链表的环的入口结点,
web29 <?php error_reporting(0); if(isset($_GET['c'])){ $c = $_GET['c']; if(!preg_match("/flag/i", $c)){ eval($c); } }else{ highlight_file(__FILE__
目录 一、查找输入整数二进制中1的个数 (1)原题再现 (2)问题分析 (3)完整代码 二、手套 (1)原题再现 (2)问题分析 (3)完整代码 一、查找输入整数二进制中1的个数 (1)原题再现 查找输入整数二进制中1的个数__牛客网 输入一个正整数,计算它在二进制下的1的个数。 注意多组输入输出!!!
KMP是真的很难理解,刚好打卡当天比较忙就没时间二刷,今天才来把坑填上。 KMP的基本理论和理解 KMP主要用于字符串匹配问题,通过前缀表记录已经匹配的部分,减少重复匹配。前缀表通常用next数组表示,记录了模式串与文本串不匹配时,模式串应该从哪里开始重新匹配。具体来说,前缀表记录了下标i之前(包括i)的字符串中,有多大长度的相同前缀后缀。 *注意
首先跟随代码随想录进行了最近回溯刷题的总结,加深理解和记忆(我真的好像记性不是很好...)。回溯和递归相伴相生,在树的遍历中其实也经常涉及回溯,一开始我也很怵递归和回溯,不太习惯递归的思路,刷题下来已经形成了一些肌肉记忆,理解回溯的树形结构也很有帮助。记住,只能用回溯的题目,本质上也是在暴力枚举,只是一般的for循环没法实现,时间复杂度没有优化,最多能针对
目录 二进制 十进制转二进制的巧妙方法 DFS DP + 保存路径 Trie树 并查集 2022年天梯赛上海理工大学校内选拔赛【部分题 题解】 二进制 D-Setsuna的K数列 不难发现,K数列本质就是每一个K进制位只能取0或1,这很像二进制,即第n个数就是 把n表示成二进制然后按K进制还原即可。
文章目录 一、连号区间数 1、1 题目描述 1、2 题解关键思路与解答 二、递增三元组 2、1 题目描述 2、2 题解关键思路与解答 三、错误票据 3、1 题目描述 3、2 题解关键思路与解答 四、回文日期 4、1 题目描述 4、2 题解关键思路与解答 五、归并排序 标题:蓝桥杯—
题目: 链接:剑指 Offer 42. 连续子数组的最大和; LeetCode 53. 最大子数组和 难度:简单 输入一个整型数组,数组中的一个或连续多个整数组成一个子数组。求所有子数组的和的最大值。 要求时间复杂度为
题目链接 Flood Fill算法,bfs遍历一遍,对于连通块的每个格子,都判断是否满足山峰山谷的条件,不满足则该连通块不是山峰或山谷 #include <iostream> #define x first #
LeetCode 239. 滑动窗口最大值 题目链接:239. 滑动窗口最大值 - 力扣(Leetcode) 单调队列经典题目,暴力解法是遍历每个滑动窗口的起始点,然后max求最大值,但以题目的数据量进行很容易超时(max,min本质上也是O(n)的时间复杂度)。窗口移动的效果可以用先入先出的队列来模拟,利用队列的特性构造单调递减的队列,构造的关键是“
🍀作者简介:在校大学生,为前端方向努力拼搏的一名追梦人。 🍁个人主页:亦世凡华、 🫒系列专栏:牛客前端宝典 🥥前言: 🏆编程就像我们平常做题一样,如果只是一味的学习不去做题的话所得到的效果微乎其微。 今天我们讲解 JS篇 类型的题库:点个关注我们继续走下去 目录 描述一:直角三角形 描述二:文件扩展名 描述三:分隔
509斐波那数列 . 斐波那契数 - 力扣(LeetCode) (leetcode-cn.com) class Solution { //模板题: 用for遍历数组,注意数列的边界条件,然后以数列递推公式直接干 public: int fib(int n) { int fib[31]; fib[0] = 0 ,
Constraints Time Limit: 10 secs, Memory Limit: 32 MB Description A Bank plans to install a machine for cash withdrawal. The machine is able to deliver appropriate bills