摘要: 本题的最经典思路是使用滑动窗口或者动态规划。 例如滑动窗口,建立起始指针和结尾指针。可以保证结尾指针一定是在起始指针右边的。那么只要每次移动结尾指针至有重复字符,然后再移动起始指针。如此重复至遍历完字符串即可。查找窗口里是否存在子串则使用建立哈希表的方法将时间复杂度降为O(1)。 这样子总的时间复杂 阅读全文
posted @ 2020-08-22 13:21 布羽 阅读(84) 评论(0) 推荐(0) 编辑
摘要: 这题要求顺时针旋转二维数组九十度,那也就是把二维数组转置后再横向对称一次。 我的实现代码如下 class Solution { public: void rotate(vector<vector<int>>& matrix) { int len=matrix.size(); for(int i=0; 阅读全文
posted @ 2020-08-22 01:40 布羽 阅读(104) 评论(0) 推荐(0) 编辑
摘要: 这题的重点在于如何用更短的时间代价去判断某个数组是否存在重复元素。 之前的题目,对于这种问题,最典型的要么就是排序,要么就是哈希。某些情况也可以用位运算去判重。这题我暂时没去看位运算相关的解法。 排序后再查重的时间效率一般,暂且不考虑。而这个数独无非是九×九的二维数组,即使使用额外的空间,也不必太纠 阅读全文
posted @ 2020-08-22 01:03 布羽 阅读(87) 评论(0) 推荐(0) 编辑
摘要: 这题是“两个数组的交集”问题的第二版,多了一个“输出结果中每个元素出现的次数,应与元素在两个数组中出现次数的最小值一致。”这个要求。 但仍旧可以用哈希法来做。对其中数组建立哈希表,其中键为元素值,值为元素频率。遍历另一个数组的元素,每在哈希表中找到相同元素,那么就把其对应频率减1并把数组当前元素放入 阅读全文
posted @ 2020-08-21 20:53 布羽 阅读(120) 评论(0) 推荐(0) 编辑
摘要: 此题解法思路很多。我只说一下自己的实现的两个方法。 第一种,遍历数组,同时删除每个零元素并记录个数,最后在尾部后面添加删除个数的零即可。思路清晰简单。效率一般。 代码如下 class Solution { public: void moveZeroes(vector<int>& nums) { in 阅读全文
posted @ 2020-08-21 12:30 布羽 阅读(87) 评论(0) 推荐(0) 编辑
摘要: 这个题目很简单,不写思路了,奇怪的是我的代码运行时间是0ms。可能leetcode的计时机制有点bug吧。。。 代码如下 1 class Solution { 2 public: 3 vector<int> plusOne(vector<int>& digits) { 4 int i=0; 5 fo 阅读全文
posted @ 2020-08-21 00:55 布羽 阅读(109) 评论(0) 推荐(0) 编辑
摘要: 解法一,排序数组,然后遍历。时间复杂度取决于排序算法。 代码如下 1 class Solution { 2 public: 3 int singleNumber(vector<int>& nums) { 4 if(nums.size()==1)return nums[0]; 5 sort(nums. 阅读全文
posted @ 2020-08-21 00:27 布羽 阅读(154) 评论(0) 推荐(0) 编辑
摘要: 此题如果对空间复杂度有要求O(1).那就用时间复杂度为O(nlogn)的排序算法排序后,遍历一遍数组,相邻元素相等则说明重复。 若要求时间复杂度为O(n),那么就用哈希法。构建一个哈希表,然后观察哈希中元素的数量和原数组数量。具体到c++中,可以使用unordered_set。 1 class So 阅读全文
posted @ 2020-08-20 22:22 布羽 阅读(138) 评论(0) 推荐(0) 编辑
摘要: 官方解题给出了四种解法。 第一种,暴力法,时间复杂度O(n*k)。 第二种,额外构建一个等大数组,将额外数组作为中介进行两次全数组的拷贝。时间代价为O(n)。空间代价也为O(n)。 第三种,环状替换,也是我自己实现的方法。时间代价O(n),空间代价O(1)。 如果我们直接把每一个数字放到它最后的位置 阅读全文
posted @ 2020-08-20 00:34 布羽 阅读(183) 评论(0) 推荐(0) 编辑
摘要: 与Ⅰ题的思路类似。用O(n)的时间遍历一遍把任务完成。 自我感觉比Ⅰ题要简单,考虑把数组元素表现成折线图形式(就像股票的价格波动图),只要把所有上升的差值求和就是答案。 代码如下 1 class Solution { 2 public: 3 int maxProfit(vector<int>& pr 阅读全文
posted @ 2020-08-19 21:00 布羽 阅读(63) 评论(0) 推荐(0) 编辑
点击右上角即可分享
微信分享提示