
LeetCode 不会
Simmu
这个作者很懒,什么都没留下…
展开
-
LeetCode 091 Decode Ways
判断一个数字组成的字符串转化为大写的字母,问有多少种组合的方式。 用动态规划来做,但是其实我之前写的太繁琐了,而且没有通过,所以参考了下别人写的,果然还是我想的太复杂了。 用一个dp[3],因为只用考虑自己和前两个数,所以数组容量为3即可。 class Solution { public: int numDecodings(string s) { if(s.lengt原创 2015-12-31 10:34:30 · 309 阅读 · 0 评论 -
LeetCode 073 Set Matrix Zeroes
如果发现在矩阵中存在为0的元素,那么将这个元素所在的行和列的所有元素都设置为0。 在设置的时候当然要考虑这行和这列中其他的元素是不是为0,以免覆盖。所以将为0的元素记录在边界上,觉得这是个非常巧妙的办法,最后遍历的时候根据边界的信息来进行判断这个元素是不是应该设置为0. class Solution { public: void setZeroes(vector>& matrix) {原创 2015-12-31 16:58:53 · 346 阅读 · 0 评论 -
LeetCode 069 Sqrt(x)
求int类型的x的平方根。 class Solution { public: int mySqrt(int x) { long long begin=0; long long end=x; while(begin<=end){ long long mid=(begin+end)>>1; if(mid*m原创 2015-12-31 18:31:43 · 224 阅读 · 0 评论 -
LeetCode 008 String to Integer (atoi)
将字符串转化为数字。 必须是有数字,可能有‘+’,‘-’。 如果是有其他的话,那么就是0。 class Solution { public: int myAtoi(string str) { if(str.empty())return 0; int ii=0; int digit=1; long long sum=0;原创 2016-01-04 12:25:03 · 242 阅读 · 0 评论 -
LeetCode 031 Next Permutation
可以直接用stl中的next_permutation来实现,但是在321中不会自动返回为123,所以这个地方要额外判断。我是直接写的。 这个里面的判断大小规则是: 从前往后,如果序列相同的位置的数比另一个相同位置的数大,那么这个序列就比另外一个序列大,那么1 2 4 3的下一个则为1 3 2 4。 做法为,首先从后往前遍历,如果出现前面的数比后面的数要小,假设这个数为A,前面的数为B,B原创 2016-01-04 17:09:10 · 276 阅读 · 0 评论 -
LeetCode 019 Remove Nth Node From End of List
删除从结尾到开头第n个的单向链表的值,并返回链表,通过用两个指针,一个在前,一个在后,他们之前的距离就为n,当前面的指针指到结尾时,后面的也就恰恰指到目标值了,当然我是按照指到目标的前一个值来计算的,这样容易计算。 /** * Definition for singly-linked list. * struct ListNode { * int val; * ListN原创 2015-12-20 14:20:56 · 341 阅读 · 0 评论 -
LeetCode 050 Pow(x, n)
求一个数的n次方。 n给的是int类型的,但是其实n取到-2147483648时,程序会出现问题,不知道为什么。只有特殊处理了。 采用二分的方法对n进行处理,这样的话迭代会很快。O(logn)的时间复杂度。 class Solution { public: double myPow(double x, int n) { //double sum=1;原创 2015-12-27 14:44:42 · 226 阅读 · 0 评论