随笔分类 - leetcode
摘要:一、版本1—有序数组中只出现一次的数字 1、题目描述 给定一个只包含整数的有序数组,每个元素都会出现两次,唯有一个数只会出现一次,找出这个数。 示例 1: 示例 2: 注意: 您的方案应该在 O(log n)时间复杂度和 O(1)空间复杂度中运行。 2、思路 a)使用线性时间异或运算: b)实现规定
阅读全文
摘要:一、题目描述 给定一个非负整数 num。对于 0 ≤ i ≤ num 范围中的每个数字 i ,计算其二进制数中的 1 的数目并将它们作为数组返回。 示例 1: 示例 2: 要求: ①给出时间复杂度为O(n*sizeof(integer))的解答非常容易。但你可以在线性时间O(n)内用一趟扫描做到吗?
阅读全文
摘要:一、题目描述 给定一组不含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集)。 说明:解集不能包含重复的子集。 示例: 二、思路 三、代码实现
阅读全文
摘要:一、题目描述 你有一个单词列表 words 和一个模式 pattern,你想知道 words 中的哪些单词与模式匹配。如果存在字母的排列 p ,使得将模式中的每个字母 x 替换为 p(x) 之后,我们就得到了所需的单词,那么单词与模式是匹配的。(回想一下,字母的排列是从字母到字母的双射:每个字母映射
阅读全文
摘要:题目描述 给定一个字符串,要求把字符串前面的若干个字符移动到字符串的尾部,如把字符串“abcdef”前面的2个字符'a'和'b'移动到字符串的尾部,使得原字符串变成字符串“cdefab”。请写一个函数完成此功能,要求对长度为n的字符串操作的时间复杂度为 O(n),空间复杂度为 O(1)。 思路 对于
阅读全文
摘要:题目描述:给定一个字符串,计算出将该字符串切分成若干个回文子串所需的最少切分次数 思路:使用动态规划,每一次DP,从i向右扫描,每找到一个回文串就算一次DP的话,就可以转换为f[i]在区间[i,n-1]之间最小的切分数量。 状态转移方程:f(i) = min{f(j+1)+1,f(j)}; 判断是否
阅读全文
摘要:最大连续子数组问题 参见https://www.kancloud.cn/wizardforcel/the-art-of-programming-by-july/97234描述的最大子序列之积问题 题目描述:给定一个数组,比如int[] arr = {-2, -1, -3, 4, -1, 2, 1,
阅读全文
摘要:(1)题目描述如图所示 (2)我们用上述矩阵分析:自顶向下分析入下图二维矩阵所示 (3)我们从arr[2][0]开始分析,arr[2][0]是计算当前位置按照题中要求(每一条路径只能往下或者右下走),可以得到arr[3][0]>arr[3][1],所以arr[2][0]值更新为arr[3][0]+a
阅读全文
摘要:问题一:求一个字符串的最大回文字符串长度; 1)思路:动态规划; 2)具体描述:设立一个长度len为字符串str,用一个dp[len][len]的二维数组来表示字符串i-j下标所构成的子串的长度,经过循环计算之后我们返回最大回文子串的长度即可,即返回dp[0][len-1]; 3)dp数组的具体实现
阅读全文

浙公网安备 33010602011771号