首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

算法练习笔记——栈常用方法以及算法练习

int search = characters.search('a'); boolean empty1 = characters.isEmpty(); 力扣练习 力扣 20....利用左半边进行判断。...如果与之对应就将对应入栈,下次如果不是左边,就将栈里面的与之比较相同出栈。 力扣 32....,当遇到(时,将其入栈,遇到)时将栈顶元素弹出,这样可以实现()匹对 但是需要是找出记录出长度和找出最长字符串 我们先定义一个maxans 即最长字符串 接下来我们需要找出最长字符串 我们可以先将字符串转为数组...,利用其元素下标,求出最长字符串: 思路就是我们可以将元素下标入栈,记录下最后一个不匹配元素下标,这样两次做差就可以求出,在每一次都用数学函数找出最大数据记录 由于第一次没有元素我们可以先将-1

15020

干货 | 最全CTF练习网站和在线攻防网站总结

最全CTF和在线攻防网站总结 这是一份红队/蓝队CTF在线平台列表来测试你学习技能 1800多个攻防实验室 1800 多个实验室!涵盖 Windows 安全、云安全、密码破解、逆向工程等等。...地址:https://defendtheweb.net/ hacksplaining 学习和练习不同漏洞 地址:https://www.hacksplaining.com/lessons TryHackMe...://rootinjail.com/index.html# OverTheWire OverTheWire提供兵棋推演可以帮助您以充满乐趣游戏形式学习和练习安全概念。...,帮助练习者建立具有实践经验蓝队职业生涯 地址:https://letsdefend.io/ Cyber Defenders 蓝队挑战 地址:https://cyberdefenders.org/...blueteam-ctf-challenges/ W3Challs 提供学习和练习黑客攻击安全挑战 地址:https://w3challs.com/ 这些只是我所知道一些最好CTF 平台,可能还有更多

4.7K22
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    算法】贪心算法练习

    贪心算法介绍 一、贪心策略:解决问题策略,局部最优->全局最优 把解决问题过程分为若干步; 解决每一步时候,都选择当前看起来“最优”解法; 希望得到全局最优。...三、学习贪心算法方向 遇到不会贪心题,很正常,把心态放平。 前期学习时候,把重点放在贪心策略上,把这个策略当做经验吸收。 如何证明贪心策略是正确 2. 860....二、算法原理 分情况讨论:第一种:当顾客给了5美元,就直接收下; 第二种,当顾客给了10美元,先判断一下有没有5美元,有就收下,没有就返回false; 第三种:20美元找零,可以分一张10和一张...二、算法原理 每次挑选当前数组中,最大那个数,然后减半,最大数减半,才有可能最快减到数组和减少到至少一半。...二、算法原理 这里就得排序,确定元素先后顺序:谁在前,谁在后 给这个数组排序,比如[a,b]:如果ab>ba,那么a前,b后;如果ab=ba,那么顺序无所谓;如果ab<ba,那么b前,a后。

    7110

    你们要测试练习网站来了

    对于小白而言,搭建测试环境首选有tpshop、shopxo、iwebshop这类php开发电商网站,虽然部署方便,但是却跟企业实际架构相差太远,不利于我们更好了解和学习软件测试。...那么,对于自学软件测试朋友来说,是否还在为找不到可以用来练习接口自动化网站而发愁呢?是否在为找不到部署测试环境而发愁呢?是否不知道现在企业做出来网站都是什么样子呢?...怎样找一个这样网站? 可以在gitee/github平台上去搜索这样网站,我通过搜索关键字springboot vue,在gitee上找到这么个网站: ?...按照上述步骤操作之后,网站基本上就部署完成了,页面一些简单功能已经可以使用,一些稍微复杂功能,比如图片上传,还需要更改配置,这个等后面研究出来了再分享给大家,目前已经可以拿部署网站用来做UI自动化和接口自动化练习了...,而且还可以用来练习功能测试,定位前后端问题,查看报错日志等。

    1.7K40

    算法练习(18)-图拓扑排序

    如上图,假设有一个大型代码工程,里面有5个模块: 模块1依赖模块2 模块2依赖模块3和模块5 模块3依赖模块4和模块5 那么,项目在编译时,应该按怎样顺序编译?...这就是所谓拓扑排序问题 就这个示例而言,显然正确编译顺序是:5->4->3->2->1 或 4->5->3->2->1 (注:4与5之间没有相互依赖,谁先谁后都可以) 思路:如下图,先找出入度为0...节点,然后以它为源点,依次把相邻节点入度减1,然后再以下1个入度为0点做为起点,依次反复,直到最后所有节点入度都为0,最后把这个过程中经过入度为0点,倒过来,就是正确顺序。...算法并不复杂,但问题在于,如果面试中遇到该题,通常给输入并非图结构,可能是个二维数据,比如: int[][] arr = new int[][]{ new...next); } } Graph g = new Graph(nodes, edges); return g; } 注:本算法

    39320

    前端需要加强练习算法

    前端开发者在提升技能和面对技术面试时,了解和练习一些算法和数据结构是非常有益。以下是一些前端开发者可以练习常见算法和数据结构: 1....栈和队列 用栈实现队列 有效括号 每日温度 6. 树和图 二叉树遍历(前序、中序、后序) 二叉搜索树验证 最小生成树(Prim 或 Kruskal 算法) 7....图算法 深度优先搜索(DFS) 广度优先搜索(BFS) 拓扑排序 10. 字符串处理 反转字符串 字符串中第一个唯一字符 最长回文子串 11....位运算 位与、位或、位异或 位1个数 两数之和,不使用加减运算符 12. 分治算法 求解最大子数组和 13. 贪心算法 零钱兑换 区间调度问题 14....回溯算法 八皇后问题 0-1背包问题 以上只是本人举一些例子,实际上,算法和数据结构学习是一个深度过程,需要长时间去理解和学习。

    15020

    算法练习(20)-平滑加权轮询算法

    所有负载均衡场景几乎都会用到这个算法:假设有2个服务器A、B,其中A分配权重为80,B分配权重为20,当有5个请求过来时,A希望分到4次,B希望分到1次。...于是就有了个这个算法,它思路如下: 初始状态时,配置权重为:{A:80, B:20},然后给每个服务器,加1个动态的当前权重(curWeight),默认为0,按以下步骤: 1、curWeight +...这个算法巧妙地方在于,每一轮分配完成,所有服务器动态权重都会归0,回到初始状态!另外1个优势在于,它能让所有权重服务器,尽早分配到,而非等到高权重服务器分配完,才轮到自己。...Integer weight; /** * 当前动态权重 */ public Integer curWeight; } 然后开干: 1 /** 2 * 平滑加权轮询算法...43 System.out.println(""); 44 } 45 } 46 } 输出: A A B A A A A B A A 最后扩展一下,这个算法不仅仅可用于负载均衡

    88751

    每周算法练习——大数乘法问题

    大数问题思路是使用矩阵或者字符串来存储,今天我试着用Java实现了这样功能,这段程序只是基本模拟大数乘法,当然实现只是基本原理。...Java代码: package org.algorithm.nqueens; /** * 用于计算大数乘法,有可能大数相乘后结果已经超出了可以表示范围 这里使用String表示一个大数,简单来说我们就去实现两个...String相乘 * * @author dell * */ public class Multiple { public static void main(String args[]...length_a : length_b); // 将两个String类型转换成char型数组 char c_a[] = str_a.toCharArray(); char c_b[] =...str_b.toCharArray(); // 转换成整形数组 int i_a[] = new int[n]; int i_b[] = new int[n]; int index_a

    67860

    每周算法练习——大数乘法问题

    大数问题思路是使用矩阵或者字符串来存储,今天我试着用Java实现了这样功能,这段程序只是基本模拟大数乘法,当然实现只是基本原理。...Java代码: package org.algorithm.nqueens; /** * 用于计算大数乘法,有可能大数相乘后结果已经超出了可以表示范围 这里使用String表示一个大数,简单来说我们就去实现两个...String相乘 * * @author dell * */ public class Multiple { public static void main(String args[]...length_a : length_b); // 将两个String类型转换成char型数组 char c_a[] = str_a.toCharArray(); char c_b[] =...str_b.toCharArray(); // 转换成整形数组 int i_a[] = new int[n]; int i_b[] = new int[n]; int index_a

    40630

    前缀和算法练习

    我们可以开一个新数组,cnt[i],表示余数是i数有多少个。...因为我们思路是找到两个序列和s[R] % k和s[L] % k余数相同个数,而我们前缀和一般式不包含 s[0] 这个东西,因为它值是0,在前缀和中没有意义,但是这道题有意义,样例里面前缀和序列...因为我们不一定需要两个序列,单个序列取余==0也构成k倍区间,此时我们就要假设s[0] = 0是有意义; 我们cnt[0]中存是s[]中等于0个数,由于s[0] = 0,所以最初等于0有1个数...cnt意义:存储模k值,将其作为左端点(模k左端点)数量 for意义:遍历每个端点,先将其作为模k右端点,根据其模k值查看它有多少个模k左端点,即能形成多少个模k区间,然后将其作为模k左端点...现在有一种新型激光炸弹,可以摧毁一个包含 R×R 个位置正方形内所有目标。 激光炸弹投放是通过卫星定位,但其有一个缺点,就是其爆炸范围,即那个正方形边必须和 x,y 轴平行。

    36040

    BFS算法模板与练习

    过程如下所示: 每次取出队头元素,并且把其拓展元素放在队尾。 上面过程可知,遍历过程以及入队过程都是按照BFS(1 2 3…10)顺序进行 BFS宽搜:每次扩展最早点。...,它最擅长就是走各种各样迷宫。...每一组数据第一行包含了两个用空格分开正整数 R 和 C,表示地图是一个 R×C 矩阵。 接下来 R 行描述了地图具体内容,每一行包含了 C 个字符。字符含义如题目描述中所述。...出度是1,入度是1,这样一个环称为置换。 最终希望状态是变成五个自环。 交换两个瓶子对于环产生影响 交换同一个环内点:裂成两个环。 交换不同环内点:合并两个环。...算法复杂度为 O(n) ,因为每个点被遍历常数次。

    70610

    模拟算法练习(一)

    模拟算法介绍: 模拟算法通过模拟实际情况来解决问题,一般容易理解但是实现起来比较复杂,有很多需要注意细节,或者是一些所谓很“麻模“东西。...模拟题一般不涉及太难算法,一般就是由较多简单但是不好处理部分组成,考察选手细心程度和整体思维逻辑。...一般为了使得模拟题写逻辑清晰一些,经常会写比较多小函数来帮助解题,例如int和string相互转换、回文串判断日期转换、各种特殊条件判断等等。...对于没有地雷方格,输出这格周围地雷数量。对于有地雷方格,输出9。...转换为int函数 3、判断闰年函数 4、判断日期是否合法函数 5、判断字符串是否是回文函数 6、判断字符串是否是ABABBABA型回文函数 #include<bits/stdc++

    13810

    基础算法练习200题06、分练习

    :【https://blog.csdn.net/feng8403000/category_11958599.html】  ----       为了帮助很多想搞算法但又害怕自己搞不定孩子们,老师付准备了...200个入门逻辑练习题,在这200个逻辑练习题下可以加强你们基础算法能力,以次为基础当面对正式算法题目的时候可以得心应手面对。 ...题目: 学校买来一些练习本n本,分给15个班,每班164本,还剩420本,学校买来多少练习本?...n本,少于一千本,分给3个班,第1个班级是第2个班级3倍,第2个班级是第3个班级2倍刚好分完,学校买来多少练习本,求满足条件中最大值?...使用穷举法可以看到所有符合一千以内9x值,输出最大即可。

    19520
    领券