#RR

leetcode 977. Squares of a Sorted Array

 977.SquaresofaSortedArray因为A是一个排序数组,且可能存在正负,那么平方最大的数一定在两头。所以使用双指针,同时申请一个数组,从数组的后往前排,每次排的数是两个指针中绝对值较大的那个数。双指针,时间复杂度是O(n)classSolution{public:vector<int&...

harris角点检测

 原理:人眼对角点的识别通常是在一个局部的小区域或小窗口完成的。如果在各个方向上移动这个特征的小窗口,窗口内区域的灰度发生了较大的变化,那么就认为在窗口内遇到了角点。如果这个特定的窗口在图像各个方向上移动时,窗口内图像的灰度没有发生变化,那么窗口内就不存在角点;如果窗口在某一个方向移动时,窗口内图像的灰度发生...
代码星球 代码星球·2020-10-13

leetcode 11. Container With Most Water 、42. Trapping Rain Water 、238. Product of Array Except Self 、407. Trapping Rain Water II

11.ContainerWithMostWaterhttps://www.cnblogs.com/grandyang/p/4455109.html用双指针向中间滑动,较小的高度就作为当前情况的高度,然后循环找容量的最大值。不管两个指针中间有多少高度的柱子,只管两头,因为两头的才决定最大容量。classSolution{...

leetcode 166. Fraction to Recurring Decimal

166.FractiontoRecurringDecimalhttps://www.cnblogs.com/grandyang/p/4238577.html用一个哈希表判断余数是否重复,重复了就有无限循环小数,就可以停止加括号了classSolution{public:stringfractionToDecimal(i...

leetcode 384. Shuffle an Array

384. ShuffleanArrayc++random函数:https://www.jb51.net/article/124108.htmrand()不需要参数,它会返回一个从0到最大随机数的任意整数,最大随机数的大小通常是固定的一个大整数。这样,如果你要产生0~10的10个整数,可以表达为:intN=ra...

贪心:leetcode 870. Advantage Shuffle、134. Gas Station、452. Minimum Number of Arrows to Burst Balloons、316. Remove Duplicate Letters

870.AdvantageShuffle思路:A数组的最大值大于B的最大值,就拿这个A跟B比较;如果不大于,就拿最小值跟B比较A可以改变顺序,但B的顺序不能改变,只能通过容器来获得由大到小的顺序,并且必须存储相应的index,因为最终需要将选择的A的数值存入与这个B相对应的index下classSolution{pub...

leetcode 108. Convert Sorted Array to Binary Search Tree 、109. Convert Sorted List to Binary Search Tree

108.ConvertSortedArraytoBinarySearchTree这个题使用二分查找,主要要注意边界条件。如果left>right,就返回NULL。每次更新的时候是mid-1,mid+1。自己推一下基本就可以验证了。classSolution{public:TreeNode*sortedArrayT...

leetcode 88. Merge Sorted Array

合并到一个新的数组,直接比较就好了,这个题目是将nums1、nums2合并到nums1,nums1有许多多余的空间如果按照合并到一个新的数组从小比到大的方式进行比较,就需要每次挪动nums1的数组。本题可以采用从大到小的比较方式,这样就不用每次挪动数组。同时注意,m和n都是可以为0的,nums1不能为空,但nums2可...
代码星球 代码星球·2020-10-13

34. Find First and Last Position of Element in Sorted Array

这个是用递归的方式写的,非递归也可以写。注意判断的时候可能出现数组越界的问题,所以要判断mid-1<0和mid+1>=nums.size(),即数组的头和数组的尾如果不判断[1],1这种就会报错classSolution{public:vector<int>searchRange(vector&...

leetcode 560. Subarray Sum Equals K 、523. Continuous Subarray Sum、 325.Maximum Size Subarray Sum Equals k(lintcode 911)

整体上3个题都是求subarray,都是同一个思想,通过累加,然后判断和目标k值之间的关系,然后查看之前子数组的累加和。map的存储:560题是存储的当前的累加和与个数      561题是存储的当前累加和的余数与第一次出现这个余数的位置      325题存储的是当前累加和与第一次出现这个和的位置其实561与325都...

leetcode 4. Median of Two Sorted Arrays

将找两个排序数组的中间值转换为找两个数组的第k小的数,findKthNumber是在两个数组中找第k小的数。每次找k/2个数,如果一个数组最末尾那个小于另一个,那这个数组的前面部分肯定属于整个k/2里面。start2+mid+1每次加了1,说明start1、start2都是新的数,属于当前的k的数,所以mid要用k/2...

581. Shortest Unsorted Continuous Subarray

begin,end必须初始化,如果整个数组是排序好的,经过for循环后,begin、end还是原始的值。注意:end必须比begin小1,因为最终的长度是end-begin+1,关键在于这个+1的地方 classSolution{public:intfindUnsortedSubarray(vector<...

leetcode 350. Intersection of Two Arrays II

最开始写成inti,j=0;就报错了 classSolution{public:vector<int>intersect(vector<int>&nums1,vector<int>&nums2){vector<int>result;intleng...

leetcode 189. Rotate Array

注意k可能大于lengthclassSolution{public:voidrotate(vector<int>&nums,intk){intlength=nums.size();if(length<=1||k<=0)return;k=k%length;rotate_core(nums,...
代码星球 代码星球·2020-10-13

剑指offer 最小的k个数 、 leetcode 215. Kth Largest Element in an Array 、lintcode 80. Median、295. Find Median from Data Stream(剑指 数据流中位数) topK

  注意multiset的一个bug:multiset带一个参数的erase函数原型有两种。一是传递一个元素值,如上面例子代码中,这时候删除的是集合中所有值等于输入值的元素,并且返回删除的元素个数;另外一种是传递一个指向某个元素的iterator,这时候删除的就是这个对应的元素,无返回值。https...
首页上一页...467468469470471...下一页尾页