leecode算法实战(5-31)

第一题二分查找

二分查找的实现是较为简单的,这里提供递归和迭代两种方式以供对比

迭代:这是一种类似于双指针的方式,通过调整双指针的指向,进行迭代

递归:递归的代码量虽然不多,但是想清楚逻辑是有难度的,主要是return左边部分还是右半部分

第二题用栈实现队列

栈和队列的关键区别就是先入先出还是先入后出,我们考虑使用两个栈实现队列。分别命名为栈A和栈B

对于push操作,我们就将其加入到栈A。

对于pop操作,我们先将栈A的元素全部加入到栈B,然后返回栈B的第一个元素并删除,再将栈B的元素返回栈A。

对于peek操作,同pop操作但不删除。

对于is_empty操作,判断栈A是否为空即可。

题解给出另一种思路,对于pop操作和peek操作,可以不将栈B返回到栈A。但是这样的操作会加入额外的判断,有利有弊吧,两者均可。给出样例代码:

第三题比较版本号

感觉很大一部分难度在理解题意上,故将所有测试样例均列出:

首先的操作肯定是使用.对原字符串进行分割,得到若干子数组,然后将两数组补成相同长度,缺省补0。然后使用字符串转数字,依次对比数字大小。

给出样例代码:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值