- 博客(9)
- 收藏
- 关注
原创 Leetcode60 Permutation Sequence (string)
题意:给一个n,一个k,求1到n的所有数字的全排列按从小到大顺序排列的第k大的数分析:可以参考康托编码2333,不过自己想也想得明白,比如说n=5的话,求第一个数字时每个数都有4!组子数,也就是/4!也就得到了开头的那个数字,然后数字是不能重复的,依次类推就能求出所有的数,注意整除时那里得处理下,也就是一些细节问题就行AC:class Solution {public: st
2017-09-30 18:23:56 152
原创 Leetcode31 Next Permutation
题意:给你一串数字(当然也可以理解成整体是一个数),求这些数字字典序排列中的下一种排列分析:从左到右,先不断寻找左边数字比右边数字大的位置(只有这样才能通过把右边数与左边换使数字整体变大的效果),然后不断向右扫描找这种情况的最小可能(因为是字典序次大嘛。。),然后从尽可能右侧找个数字把固定那个位置的数字换掉(此时该位置以右肯定是从大到小排列的,所以为了换的数字尽量小。。),最后一个revers
2017-09-30 18:09:34 158
原创 leetcode18 4Sum
题意:一个数组中,找出4个数之和为指定target的。分析:又是一类超经典的数组中找和为某数的组合问题,一般通过定数扫描的方法可以减少一阶复杂度,4个数的话就可以先固定头两个数再扫描,注意解不要重复,按数字来扫不要按位扫就好。AC:class Solution {public: vector> fourSum(vector& nums, int target) {
2017-09-28 15:49:43 178
转载 leetcode15 3Sum (set)
题意:给一个数组,求其中所有和为0的三元组。分析:也算是一道经典的编程题,先固定一个数,然后后指针从后往前夹逼,中间指针扫描找解(注意去除重复元素,满足条件的三元组要逃过重复元素),这道题以前一直没过是因为按位移动第一个数,而不是按数字移动第一个数。。。AC:class Solution {public: vector> threeSum(vector& nums) {
2017-09-27 11:40:58 188
原创 leetcode128 Longest Consecutive Sequence (map)
题意:给一个数组,求这个数组中连续数字部分的最大长度是多少分析:先排序后再用哈希表来做就行,以前都是用的数组(桶排序那种想法来做),但这道题有负数,所以不得不(巧了)用到了map这种实用的stl模板,做法就是,找一个数,从这个数起前后寻找看看map中是否有临近元素(也就是能使长度加1的元素),如果断了,就找下一个数重复操作,为了避免超时所有被找过的元素都被标记(因为我们要寻找的数字都是连续的也
2017-09-27 11:19:22 138
原创 leetcode4 Median of Two Sorted Arrays
题意:给你两个排好序的数组,求这两个数组的并集的第n大的数。分析:这是一道非常经典的题,由复杂度知道要减少一半的计算量,所以就引发了下列的思考:求第k大的数,设两个数组分别为a,b(而且代码里我们通过递归假设了a数组的长度一直不大于b数组的长度),那么只需比较a[k/2-1]与b[k/2-1]哪个大,如果前者小,这就说明第k大的数肯定不会在a的k/2-1之前,下一次递归查询时就可以从a[k
2017-09-27 10:50:53 139
原创 leetcode33 Search in Rotated Sorted Array
题意:给你一个数组,这个数组是由一个递增数组以某点为中心旋转而来的,然后让你找某个指定值得下标。分析:暴力的话 n^2复杂度并没试过,但这道题一看就是用二分比较合适,毕竟原来是有序的。想法就是每次取这组数列的中心点作为分界线,左右两边至少会有一个数列是递增的,另一个则是与初始数组相同的旋转队列(先给出两个样例数据:[4,5,6,7,0,1,2],再给出一个[2,4,5,6,7,0,1],一个是
2017-09-27 10:18:50 126
转载 C++动态申请二维数组
转自http://blog.csdn.net/u012027907/article/details/16370625C++中有三种方法来动态申请多维数组 (1)C中的malloc/free (2)C++中的new/delete (3)STL容器中的vector 下面逐一介绍:第一种:malloc/free1.动态开辟一维数组[cpp] vie
2017-09-21 22:12:09 663
原创 matplotlib 输出保存指定尺寸的图
其实这个问题来源于笔者的横坐标太多了,然后生成的那个figure框框太小,导致坐标重叠,而输出的图片是需要批量保存的,总不能每次都拉长截图吧所以在plot绘图之前加上了一句plt.figure(figsize=(10, 5))图就变了hhh然后偶然间有发现了能调节子图也就是subplot性质的一个api蛮有趣的,分享下plt.subplots_adjust(left=0.09,
2017-09-15 18:00:16 33717
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人