摘要: 剑指 Offer 05. 替换空格 解题方法 首先遍历字符串,统计出字符串中空格的总数 spaceNum 扩充字符串的长度。设立两个指针,根据数学规律进行后移复制。 class Solution { public: string replaceSpace(string s) { int spaceN 阅读全文
posted @ 2021-03-01 18:31 focusDing 阅读(49) 评论(0) 推荐(0) 编辑
摘要: 剑指 Offer 04. 二维数组中的查找 当我们需要解决一个复杂的问题时,一个有效的办法就是从一个具体的问题入手,通过分析简单具体的例子,试图寻找普遍的规律。针对 这个问题,我们也不妨从一个具体的例子入手。 | 1 | 2 | 8 | 9 | | | | | | | 2 | 4 | 9 | 12 阅读全文
posted @ 2021-03-01 17:11 focusDing 阅读(52) 评论(0) 推荐(0) 编辑
摘要: 不修改数组找出重复的数字 解题思想 题目要求不能修改输入的数组,我们可创建一个长度为n+1的辅助数组,逐一复制,我们就很容易发现哪个数字重复了。 由于需要创建一个数组,该方案需要O(N)的辅助空间。 接下来我们尝试避免使用O(n)的辅助空间。为什么数组中会出现重复数字。因为限定了范围的缘故。 好比有 阅读全文
posted @ 2021-03-01 16:07 focusDing 阅读(99) 评论(0) 推荐(0) 编辑
摘要: 剑指 Offer 03. 数组中重复的数字: 方法一:利用空间换时间。哈希表 class Solution { public: int findRepeatNumber(vector<int>& nums) { vector<int> hashNum; int ans; int len = nums 阅读全文
posted @ 2021-03-01 13:19 focusDing 阅读(62) 评论(0) 推荐(0) 编辑
摘要: 解码方法 这道题目我考虑到了使用动态规划,但是考虑的不全面。 算法分析 分析: 本题利用动态规划解决,但是需要注意分情况讨论 dp[i] 为str[0……i]的译码方法总数 分情况讨论: (极端情况)若s[i] = '0',那么若s[i-1] = '1' or '2',则dp[i] = dp[i-1 阅读全文
posted @ 2021-03-01 11:24 focusDing 阅读(142) 评论(0) 推荐(0) 编辑