![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
剑指offer
Tanlis
这个作者很懒,什么都没留下…
展开
-
剑指offer 49题. 最长不含重复字符的子字符串
请从字符串中找出一个最长的不包含重复字符的子字符串,计算该最长子字符串的长度。假设字符串中只包含从’a’到’z’的字符。样例输入:"abcabc"输出:3这题目一开始看了好几遍代码都没懂,关键在于加粗的部分双指针算法:思路是 维护一个 i ~ j 的区间,使用hash_map 来确保 i~j之间的数都是不重复的。每当j往后移动一个位置后。检查有没有重复的,...原创 2019-07-16 00:49:20 · 377 阅读 · 0 评论 -
13. 找出数组中重复的数字
给定一个长度为nn的整数数组nums,数组中所有的数字都在0∼n−10∼n−1的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。注意:如果某些数字不在0∼n−10∼n−1的范围内,或数组中不包含重复数字,则返回 -1;样例给定 nums = [2, 3, 5, 4, 3, 2, 6, 7]。...原创 2019-07-21 12:14:18 · 357 阅读 · 0 评论 -
14. 不修改数组找出重复的数字
给定一个长度为n+1的数组nums,数组中所有的数均在1∼n的范围内,其中n≥1。请找出数组中任意一个重复的数,但不能修改输入的数组。样例给定 nums = [2, 3, 5, 4, 3, 2, 6, 7]。返回 2 或 3。思考题:如果只能使用O(1)O(1)的额外空间,该怎么做呢?强调了O(1) 的空间。 得考虑数字的特殊性。区间统计法: 统计...原创 2019-07-21 12:41:23 · 232 阅读 · 0 评论 -
15. 二维数组中的查找
在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。样例输入数组:[ [1,2,8,9], [2,4,9,12], [4,7,10,13], [6,8,11,15]]如果输入查找数值为7,则返回true,如果输入查找数值为5,则返回false...原创 2019-07-21 12:46:02 · 99 阅读 · 0 评论 -
16. 替换空格
请实现一个函数,把字符串中的每个空格替换成"%20"。你可以假定输入字符串的长度最大是1000。注意输出字符串的长度可能大于1000。样例输入:"We are happy."输出:"We%20are%20happy."这个没啥好说的。偷鸡解法。一看就懂class Solution {public: string replaceSpaces(string...原创 2019-07-21 12:49:42 · 109 阅读 · 0 评论 -
17. 从尾到头打印链表
输入一个链表的头结点,按照从尾到头的顺序返回节点的值。返回的结果用数组存储。样例输入:[2, 3, 5]返回:[5, 3, 2]遍历一遍,反转。偷鸡偷鸡。/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; ...原创 2019-07-21 12:53:52 · 154 阅读 · 0 评论