leetcoe
qq_37718687
这个作者很懒,什么都没留下…
展开
-
2021-03-11
正则表达式匹配 题目: 正则表达式匹配 (leetcode 10/ 剑指offer 19): 请实现一个函数用来匹配包含’. ‘和’‘的正则表达式。模式中的字符’.‘表示任意一个字符,而’'表示它前面的字符可以出现任意次(含0次)。在本题中,匹配是指字符串的所有字符匹配整个模式。例如,字符串"aaa"与模式"a.a"和"abaca"匹配,但与"aa.a"和"ab*a"均不匹配。 解题思路: 1. 非正规解题思路:使用java/python自带的正则表达式库: import re class Soluti原创 2021-03-11 16:46:45 · 60 阅读 · 0 评论 -
2021-03-06
leetcode 503 题目 给定一个循环数组(最后一个元素的下一个元素是数组的第一个元素),输出每个元素的下一个更大元素。数字 x 的下一个更大的元素是按数组遍历顺序,这个数字之后的第一个比它更大的数,这意味着你应该循环地搜索它的下一个更大的数。如果不存在,则输出 -1。 题解 单调栈 官方给出的解法是单调栈。这个题目中使用的是单调递减栈,栈中记录了没有找到下一个更大的数的下标。 ...原创 2021-03-06 14:59:34 · 73 阅读 · 0 评论 -
2021-03-06
leetcode1755 题解 题目 给你一个整数数组 nums 和一个目标值 goal 。 你需要从 nums 中选出一个子序列,使子序列元素总和最接近 goal 。也就是说,如果子序列元素和为 sum ,你需要 最小化绝对差 abs(sum - goal) 。 返回 abs(sum - goal) 可能的 最小值 。 注意,数组的子序列是通过移除原始数组中的某些元素(可能全部或无)而形成的数组。 提示: 1 <= nums.length <= 40 -107 <= nums[i]原创 2021-03-06 14:51:22 · 73 阅读 · 0 评论 -
2021-03-04
库函数powpowpow实现与快速幂 题目: 实现库函数pow(double base, int exp) 解题思路 这道题最朴素的解法如下: double ans = base; for(int i = 0; i < exp; i++) { ans *= base; } return ans; 缺陷 首先,没有考虑到边界条件。显然exp可以为负,当exp为负时base不能为0,且base,exp不能同时为0,因为000^000没有意义。 其次,算法的时间复杂度太高。总所周知乘法的时间耗费不止原创 2021-03-04 19:26:18 · 110 阅读 · 1 评论 -
2021-03-04
如何通过位运算统计数字中1的数量(leetcode338) 题目: 给定一个非负整数 num。对于 0 ≤ i ≤ num 范围中的每个数字 i ,计算其二进制数中的 1 的数目并将它们作为数组返回。 结题思路: 这个题目的重点在于计算数字nnn中111的个数。 计算一个数字中1的个数的常用方法是位运算。第一种方法是将数字n右移,与1与求得nnn的个数: int count = 0; while (n != 0) { count += n & 0x1; n >>= 1; } 这原创 2021-03-04 17:14:16 · 172 阅读 · 1 评论 -
2021-03-04
力扣300最长单调子序列题解题目描述:一般解法:贪心+二分搜索 题目描述: 给你一个整数数组 nums ,找到其中最长严格递增子序列的长度。 子序列是由数组派生而来的序列,删除(或不删除)数组中的元素而不改变其余元素的顺序。例如,[3,6,2,7] 是数组 [0,3,1,6,2,2,7] 的子序列。 一般解法: 一般的动态规划解法的时间复杂度为O(n2)O(n^2)O(n2),空间复杂度为O(n)O(n)O(n),地推公式为: dp[i]=max(dp[j]+1)dp[i] = max(dp[j] +原创 2021-03-04 16:18:25 · 135 阅读 · 1 评论