剑指offer笔记(九) 第58题至第62题
前言
这次主要记录剑指offer的7道题,主要使用的语言是python,下面将对这7道题的一些感悟和知识点进行汇总!
提示:以下是本篇文章正文内容,下面案例可供参考 截图来源于LeetCode
一、JZ58-1 翻转单词顺序
很有用的三个函数啊!strip() 去掉整个字符串头尾的空格;split() 按照空格分开字符串; ‘ ’.join() 使用空格连接倒序、划分好的各个字符。
以下为程序源码:
二、JZ58-2 左旋转字符串
直接用python的切片,很方便!!!
以下为程序源码
三、JZ59-1 滑动窗口的最大值
使用双头队列,开始的时候装入k个数字,记住装的时候需要比较一下,队列的左侧第一个元素一定是所存储的k个值中的最大值!之后向右移动,需要判断移动的数据是否为队列最左侧的第一个元素,Yes!deque.popleft(),反之,同上了,继续维持队列的最左侧第一个元素为k个子数组中的最大值。
以下为程序源码:
四、JZ59-2 队列的最大值
添加辅助数组 deque用来存储最大值,注意吐数的时候需要判断一下是否对deque造成影响。
以下为程序源码:
五、JZ60 n个骰子的点数
找规律,LC的K神讲得太好了,分享链接。
以下为程序源码:
六、JZ61 扑克牌中的顺子
找规律了:
- 不能存在重复的元素;
- 最大的元素 - 最小的元素 < 5
以下为程序源码:
七、JZ62 圆圈中最后剩下的数字
背一下吧!
以下为程序源码:
八、总结
不说啥了,深度学习好难!怎样保证函数收敛,啊~,好玄学。