Loading

上一页 1 2 3 4 5 6 7 8 ··· 18 下一页
摘要: 题目 剑指 Offer 59 - I. 滑动窗口的最大值 思路1(单调队列) 使用单调(递减)队列,保持队列中的元素是递减顺序,队列头保存的是当前窗口中最大的元素 首先先模拟建立第一个窗口,同时获取第一个窗口的最大值**(就是队头元素)** 然后每次窗口移动的时候都要判断移出去的元素是否是最大的元素 阅读全文
posted @ 2021-11-09 22:57 linzeliang 阅读(93) 评论(0) 推荐(0) 编辑
摘要: 题目 剑指 Offer 31. 栈的压入、弹出序列 思路1 刚开始看题目没有啥思路,但是我们可以通过按照题目的要求模拟一次操作,就可以找到其中的规律了 我们使用一个栈stack来模拟栈的push和pop操作: 首先肯定要将所有元素一个个入栈,我们可以再入栈的时候根据popped判断是否需要出栈:如果 阅读全文
posted @ 2021-11-09 01:23 linzeliang 阅读(44) 评论(0) 推荐(0) 编辑
摘要: 题目 剑指 Offer 30. 包含min函数的栈 思路1 使用一个辅助栈min_stack,用来维护栈的最小的元素 每次添加元素入栈时候,data_stack和min_stack都要同时维护 data_stack按照正常的栈压入和弹出顺序,但是min_stack栈不一样,因为要能获取当前栈的最小元 阅读全文
posted @ 2021-11-09 01:09 linzeliang 阅读(99) 评论(0) 推荐(0) 编辑
摘要: 题目 剑指 Offer 06. 从尾到头打印链表 思路1(递归) 首先先遍历整个脸表,计算出链表的长度(用于初始化数组)。然后进行递归,从链表头部递归到尾部,这期间什么都不做,直到递归到最后一个节点的时候开始返回,开始返回的同时吧当前节点的值加入到res数组 代码 class Solution { 阅读全文
posted @ 2021-11-06 23:24 linzeliang 阅读(91) 评论(0) 推荐(1) 编辑
摘要: 题目 剑指 Offer 67. 把字符串转换成整数 思路1 根据题意,要解决这题,首先要判断的条件有: 不包括首位空格 第一位必须为:+、-、数字三者其一,否则不合法 数字必须连续的,如果遇到非数字,结束判断 判断结果要在 \(-2^{31}\)~\((2^{31}-1)\) 之间,如果超过的话,就 阅读全文
posted @ 2021-11-05 02:15 linzeliang 阅读(139) 评论(0) 推荐(0) 编辑
摘要: 题目 剑指 Offer 66. 构建乘积数组 思路1 按照一般的思路就是将所有的相乘,然后除以每一位数字就是答案,但是题目要求我们不能使用除法,因此我们会想到每次遍历到每个数字的时候,在遍历一遍数组,将除开自己以外的数字相乘,但是这样做的时间复杂度确是$O(N^2)$,导致超时,因此我们需要想另外一 阅读全文
posted @ 2021-11-04 00:39 linzeliang 阅读(80) 评论(0) 推荐(0) 编辑
摘要: 题目 剑指 Offer 61. 扑克牌中的顺子 思路1(排序) 先将数组进行排序,排序结束后再遍历: 寻找非0最小值 如果发现非0的数字重复,直接返回false 遍历结束后,如果max-min < 5,则为顺子,否则不是顺子 代码 class Solution { public boolean is 阅读全文
posted @ 2021-11-02 19:16 linzeliang 阅读(45) 评论(0) 推荐(0) 编辑
摘要: 题目 剑指 Offer 58 - II. 左旋转字符串 思路1(原地翻转) 先将前n个进行翻转,再将后n个进行翻转,最后再整体翻转一遍 我们把他看成两个部分,然后对每个部分都是一个整体,内部不需要翻转,因此我们可以把这题可以看作是剑指 Offer 58 - I. 翻转单词顺序只有两个单词的情况 代码 阅读全文
posted @ 2021-11-02 16:50 linzeliang 阅读(31) 评论(0) 推荐(0) 编辑
摘要: 题目 剑指 Offer 58 - I. 翻转单词顺序 思路1 假如题目要求我们翻转字符串,那么我们可以从末尾往前开始遍历每一个字符,同时将每一个字符添加到临时空间,最后输出临时空间的数据就完成翻转了,这就是倒叙遍历字符串,即从最末尾开始遍历。但是这一题又有些不同,题目要求是以单词为单位进行翻转字符串 阅读全文
posted @ 2021-11-02 01:54 linzeliang 阅读(80) 评论(0) 推荐(0) 编辑
摘要: 题目 剑指 Offer 57 - II. 和为s的连续正数序列 思路1(双指针/滑动窗口) 所谓滑动窗口,就是需要我们从一个序列中找到某些连续的子序列,我们可以使用两个for循环来遍历查找,但是未免效率太低了。因此我们可以用一个窗口,从左到右只需要遍历一次,然后每次判断当前窗口是否满足条件,不满足就 阅读全文
posted @ 2021-10-30 01:08 linzeliang 阅读(71) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 8 ··· 18 下一页