basis of algorithm

一直以来认为基础算法枯燥无味,但后来发现ta里面的思想对项目实战还是很有帮助的,那接下来好好捣鼓一下吧。

1.迭代思想

对于一块大饼,为了防止今天吃不完明天接着吃,我们每次得从咬痕处吃起,这样子,以减少唾液造成的糜烂面积。

1.1单链表反转

1.现有一个带头节点的单链表head(0,next) -> (1,next) -> (2,next) -> (3,next) 。
2.创建一个带头节点的临时单链表newHead(0,next) -> null 。
3.初始时cur指向(1,next),next 指向(2,next) 。
4.cur指向临时单链表的第一个节点 cur.next = newHead.next 。
5.临时单链表的头节点指向cur newHead.next = cur 。
6.cur 和 next 后移动 。
7.原单链表的头节点指向临时单链表的第一个节点 head.next = newHead.next 。

2.递归思想

将一个大饼按着一定的标准切割成n份规格相同的小饼,一口一块小饼,岂不是更有胃口和风趣。

2.1单链表反转

  1. 现有一个带头节点的单链表head(0,next) -> (1,next) -> (2,next) -> (3,next) 。
    2.需要逆转为head(0,next) -> (3,next) -> (2,next) -> (1,next) 。
    3.由于递归用到jvm内存结构的栈,下面我们就用画图理解ta的原理,如图2-1 。
    在这里插入图片描述
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值