[leetcode_33]Search in Rotated Sorted Array

给定一个sorted 的array但是 需要做个调转:比如: 0 1 2 3 4 5 6 7 8 9 某个调转之后:7 8 9 0 1 2 3 4 5 6 输入target,如果array中存在target返回下标,否则,返回-1。 欧克,傻瓜都能想到o(n)的方法, 有没有更快的?o(logn)?二分?二分查找变形一下就行: class Solution { public: int ans; void searchSt……

[leetcode_77]Combinations

简单搜索题,但是题目交代不是很清楚,也可能是自己的英文不大好,就是说给n,全集为1,2,3…n。从里面选k个组成子集,列举所有子集。 class Solution { public: void combineStep(int n,int step,int k,vector<int>&item,vector<vector<int>>&ans,int count) { if(step &……

[leetcode_142]Linked List Cycle II

判断一个链表中是否有环,并且输出进入环中的节点。如果没有,输出NULL。 判断一个链表是否成环,且不开辟额外的空间,在之前的博客中一提到: http://blog.sina.com.cn/s/blog_672f71fc0101odsf.html 如何输出环中节点的入口节点? 如果能计算出环中节点个数k,再根据从后向前删除节点的思路: http://blog.sina.com.cn/……

[leetcode_73]Set Matrix Zeroes

给一个mn矩阵,将该矩阵中出现0元素的位置的行列均置为0。 最简单的方法,开一个mn的矩阵记录,再设置就行了。 更简单的是:开一个m+n的矩阵记录行列就可以了。 更更简单的常数空间的方法,我想了一种,有点问题,正在琢磨,先把m+n的解法贴出来吧。 一次AC。 附上代码: class Solution { public: void set……

[leetcode_62]Unique Paths

这个题因为原链接的图片挂了,不过根据题意,题意是:给一个m*n的矩阵,问有多少条路径可以从(0,0)点到(m-1,n-1)点。 走路的规则是 一步只能从当前点往右或者往下走。 宽度优先搜索。 附上代码: 一次AC。目测代码性能还是不够好。 struct PPoint { int x; int y; }; class Solution { public: bool C……

[leetcode_48]Rotate Image

将一个n*n的矩阵顺时针旋转90度,额外地,能不能原地旋转,就是不开辟额外的空间。 一次AC,每个位置上的旋转只会影响4个位置上的数组,开一个tmp,搞定。 附上代码: class Solution { public: void MoveStep(vector&lt;vector&lt;int&gt;&gt; &amp;matrix,int i,int j,int n) { in……

[leetcode_137]Single Number II

给出n个数,里面每个数字重复3次,只有一个数字只出现一次,求该数字[线性时间和空间] 相信两个数的大家都会,异或就行。 其实最开始用mapA过,觉得不符合题意,看了别人的思路,知道了,其实就是题目的变形,感觉不会举一反三,而且对问题的分析能力不够。 异或的目的就是计数每个位置出现1的个数,如果有两次就清零。 ……