草庐IT

leetcode题解

全部标签

[极客大挑战 2019]web部分题解(sql部分已完结,其他部分正在更新)

SQL部分:[极客大挑战2019]BabySQL打开环境后有登录界面◕‿◕一眼注入,后先试试万能密码:username:admin'or'1'='1password:1 GG,出大问题,我就会这一招啊O.o??完结撒花(不是꒰ঌ(⌯''⌯)໒꒱开玩笑的,着看着像是过滤了or后来尝试了一下oorr双写发现也不行,那咱继续注入哈:尝试输入下正常的unionselect等语句发现都被过滤了,那接下来把他们都双写看一下:/check.php?username=admin&password=1%27ununionionseselectlect1%23看到情况是不报错,是列数不对啊那就使用二分法一个一个排

LeetCode刷题记录——day1

https://leetcode.cn/problems/h-index/description/?envType=study-plan-v2&envId=top-interview-150注:题目有点难理解,多读几遍可以这样考虑,建立另一个临时数组temp,当第i篇文章被引用citiations[i]次时,令j的temp[j]均加一,也就是现在对于任意j至少有temp[j]篇论文引用次数大于等于j。因为h是最大值,那么遍历temp最后一个满足temp[j]>=j的j就是所求。当然,以上的时间复杂度和空间复杂度都比较大,另一种好的方法是先排序后遍历。先将数组citiations进行排序,如何从

【翻译+题解】WebGoat (A7) Cross Site Scripting (XSS) 跨站脚本

环境配置Kali-Linux-2021+WebGoat8.2.21概念本课介绍什么是跨站脚本(XSS),以及如何利用它来执行并非开发人员初衷的任务。目标用户应基本了解什么是XSS及其工作原理用户将了解什么是反射XSS用户将展示以下方面的知识反射XSS注入基于DOM的XSS注入2什么是XSS?跨站脚本(通常也称为XSS)是一种漏洞/缺陷,它允许将html/脚本标记作为输入,未经编码或消毒就呈现在浏览器中。跨站脚本(XSS)是最普遍、最有害的网络应用程序安全问题虽然这种攻击有一个众所周知的简单防御方法,但在网络上仍有很多这样的事例。就修复而言,修复范围也往往是个问题。我们稍后将进一步讨论防御问题。

算法沉淀——穷举、暴搜、深搜、回溯、剪枝综合练习三(leetcode真题剖析)

算法沉淀——穷举、暴搜、深搜、回溯、剪枝综合练习三01.字母大小写全排列02.优美的排列03.N皇后04.有效的数独01.字母大小写全排列题目链接:https://leetcode.cn/problems/letter-case-permutation/给定一个字符串s,通过将字符串s中的每个字母转变大小写,我们可以获得一个新的字符串。返回所有可能得到的字符串集合。以任意顺序返回输出。示例1:输入:s="a1b2"输出:["a1b2","a1B2","A1b2","A1B2"]示例2:输入:s="3z4"输出:["3z4","3Z4"]提示:1s由小写英文字母、大写英文字母和数字组成思路在处理

动态规划全总结(涵盖所有题型,左神思路全讲解+LeetCode)

动态规划是对暴力递归算法的优化,主要是通过数组记录的方法,优化掉一些重复计算的过程。总结下动态规划的过程:(1)抽象出一种“试法”,递归解决问题的方法,很重要(2)找到“试法”中的可变参数,规划成数组表,可变参数一般是0维的,有几个可变参数就是几维的表(3)找到basecase,问题最基础的解,填入数组表中(4)根据“试法”中的递归过程,和basecase已经填到数组表的值,继续填表(5)根据问题给定的参数,找到数组中对应的位置,就是最终的解然后通过几个例子具体看一下动态规划是怎么玩的。 设计模式总结:递归函数的可变参数不能是数组类型,一个可变参数就是一维表,两个可变参数就是二维表。常用总结:

力扣hot100题解(python版55-59题)

55、全排列给定一个不含重复数字的数组nums,返回其所有可能的全排列。你可以按任意顺序返回答案。示例1:输入:nums=[1,2,3]输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]示例2:输入:nums=[0,1]输出:[[0,1],[1,0]]示例3:输入:nums=[1]输出:[[1]]提示:1-10nums中的所有整数互不相同思路解答:递归生成排列:通过递归函数backtrack,在每一步尝试将当前位置的元素与后续位置的元素交换,然后递归处理下一个位置。交换元素:在每一步尝试中,通过交换元素的位置来生成不同的排列,这样可以确保每

leetcode刷题日记:LCR 142. 训练计划 IV,876. 链表的中间结点

今天的两道题涉及到的知识点是双指针以及合并链表的一些技巧(我是使用的迭代法的,看了题解之后才搞明白,希望能给大家讲清楚)1.LCR142.训练计划IV题目描述:思路分析:这个链表很特殊,它的顺序是升序的,已经给你排好了,现在要求是合并之后再按照升序进行重新组装。一开始的时候我想直接先用给出的这两个链表来操作,先对一个链表进行循环,把另外一个链表中的节点的值与其比较,然后插到中间。但是这样的思路的问题在于最后我们是要返回一个链表的头结点的,但是我们在遍历的时候,会将头结点向后移,即使用另外一个变量来存储原来链表的头结点,指针在进行操作的时候还是会把这个新变量一同进行变化(昨天的文章里面谈到了这件

【洛谷 P8742】[蓝桥杯 2021 省 AB] 砝码称重 题解(动态规划+01背包+位集合)

[蓝桥杯2021省AB]砝码称重题目描述你有一架天平和NNN个砝码,这NNN个砝码重量依次是W1,W2,⋯ ,WNW_{1},W_{2},\cdots,W_{N}W1​,W2​,⋯,WN​。请你计算一共可以称出多少种不同的重量?注意砝码可以放在天平两边。输入格式输入的第一行包含一个整数NNN。第二行包含NNN个整数:W1,W2,W3,⋯ ,WNW_{1},W_{2},W_{3},\cdots,W_{N}W1​,W2​,W3​,⋯,WN​。输出格式输出一个整数代表答案。样例#1样例输入#13146样例输出#110提示【样例说明】能称出的10种重量是:1、2、3、4、5、6、7、9、10、111、

【Py/Java/C++三种语言OD2023C卷真题】20天拿下华为OD笔试之【模拟/数学】2023C-多段线数据压缩【欧弟算法】全网注释最详细分类最全的华为OD真题题解

有LeetCode算法/华为OD考试扣扣交流群可加948025485可上全网独家的欧弟OJ系统练习华子OD、大厂真题绿色聊天软件戳od1336了解算法冲刺训练文章目录题目描述与示例题目描述输入描述输出描述补充说明示例输入输出说明解题思路代码PythonJavaC++时空复杂度华为OD算法/大厂面试高频题算法练习冲刺训练题目描述与示例题目描述下图中,每个方块代表一个像素,每个像素用其行号和列号表示。为简化处理,多段线的走向只能是水平、竖直、斜向45度。上图中的多段线可以用下面的坐标串表示:(2,8),(3,7),(3,6),(3,5),(4,4),(5,3),(6,2),(7,3),(8,4),

【LeetCode】17.电话号码的字母组合

 题目链接:17.电话号码的字母组合-力扣(LeetCode)给定一个仅包含数字2-9的字符串,返回所有它能表示的字母组合。答案可以按任意顺序返回给出数字到字母的映射如下(与电话按键相同)。注意1不对应任何字母。示例1:输入:digits="23"输出:["ad","ae","af","bd","be","bf","cd","ce","cf"]示例2:输入:digits=""输出:[]示例3:输入:digits="2"输出:["a","b","c"]提示:0digits[i]是范围['2','9']的一个数字思路本文中的代码使用C++实现,但是思路是共通的(1)数字映射字符串我们需要一个数组保